我将这个问题作为上一个问题的延续发布,因为它可能还不清楚。
我的系统登录( session )运行得很好 - 我想捕获用户 ID 并将该 ID 插入表单提交
<?php echo $row['userID']; ?>
我可以获取 id 并将其显示在页面上的任何位置 - 但无法将 id 插入隐藏的表单字段 - 寻找有关如何执行此操作的指针。
<div class="form-group">
<div class="col-sm-10"><input type="hidden" name="userId" id="userId"
value="<?php echo $_SESSION['userID'];?>" /></div>
session_start();
require_once 'class.user.php';
$user_home = new USER();
if(!$user_home->is_logged_in())
{
$user_home->redirect('login.php');
}
$stmt = $user_home->runQuery("SELECT * FROM tbl_users WHERE userID=:uid");
$stmt->execute(array(":uid"=>$_SESSION['userSession']));
$row = $stmt->fetch(PDO::FETCH_ASSOC);
$_SESSION['userId'] = $userId;
?>
最佳答案
session_start();
应在任何 HTML 标记甚至空格之前首先调用。
<?php
session_start();
require_once 'class.user.php';
$user_home = new USER();
if(!$user_home->is_logged_in())
{
$user_home->redirect('login.php');
}
$stmt = $user_home->runQuery("SELECT * FROM tbl_users WHERE userID=:uid");
$stmt->execute(array(":uid"=>$_SESSION['userSession']));
$row = $stmt->fetch(PDO::FETCH_ASSOC);
$_SESSION['userId'] = $userId;
?>
<!DOCTYPE html>
...
然后您可以通过调用 session_start()
的网站的任何位置使用该 session 值。
在您的情况下 insert.php
看起来像:
<?php
session_start();
$server = "localhost";
$user = ""; $pass = "";
$dbname = "";
$conn = new mysqli($server, $user, $pass, $dbname);
if($conn->connect_error){ die("Connection failed:" . $conn->connect_error); }
$userID = $_SESSION['userId']; // Just use session value and no escaping required
$b_name = mysqli_real_escape_string($conn, $_POST['b_name']);
$name = mysqli_real_escape_string($conn, $_POST['name']);
$email = mysqli_real_escape_string($conn, $_POST['email']);
$b_area = mysqli_real_escape_string($conn, $_POST['b_area']);
$tel = mysqli_real_escape_string($conn, $_POST['tel']);
$sql = "INSERT INTO brands (userID, b_name, name, email, b_area, tel) VALUES ('$userID', '$b_name', '$name', '$email', '$b_area', '$tel')";
关于php - 将用户 ID 插入表单数据库提交 php,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45115640/