有没有办法发布会话变量?

时间:2014-01-11 09:00:26

标签: php forms session session-variables sticky

我希望访问存储在会话中的登录user_id,并将其发布到查询中。如下所示:

if(!empty($_SESSION['user_id'])) {
    $_POST['user_id'] = $_SESSION['user_id'];
    $ui = $_POST['user_id'];
} else {
    $errors[] = 'Please login before posting a book for sale.';
}

然后在查询中:

if (empty($errors)) {
$q = 'INSERT INTO books (user_id, isbn, name, image, price) VALUES (?, ?, ?, ?, ?)';
$stmt = mysqli_prepare($dbc, $q);
mysqli_stmt_bind_param($stmt, 'isssd', $ui, $isbn, $bn, $i, $p);
mysqli_stmt_execute($stmt);

现在我已经知道第一个IF语句不正确,但是我发布了这样,所以你们PHP的人可以看到我想要完成的事情。我试图找出如何获取存储的变量user_id,使其粘滞,然后将其发布在查询中。谢谢!

2 个答案:

答案 0 :(得分:2)

由于您已将变量存储在$_SESSION['user_id'] ..

你为什么不用这个:

$ui = $_SESSION['user_id'];

答案 1 :(得分:0)

只需将session id放入变量即可。无需编写任何POST变量。 您可以这样使用:

$your_variable = $_SESSION['user_id'];
//according to your code you can write it
$ui = $_SESSION['user_id'];

当然不要忘记在页面顶部使用session_start();