【问题标题】:PHP SESSIONS insert user id into formPHP SESSIONS 将用户 ID 插入表单
【发布时间】:2017-07-15 12:01:02
【问题描述】:

我有一个使用 php 会话的系统 - 我想捕获用户 ID 并将其插入到提交表单(到 db)中。我在完成这项工作时遇到问题 -

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);

以上是会话开始

<?php echo $row['userID']; ?>

这是我试图用来插入的 - 表单提交工作正常并将其他字段传递给数据库 - 但用户 ID 始终为空 -

谢谢 -

【问题讨论】:

  • 在尝试在查询中使用它之前,您实际上并没有设置$_SESSION['userSession']。还是设置在其他地方?您的代码不清楚。
  • 您是否尝试在使用查询之前将会话放入变量中并使用bindParam 设置参数?

标签: php mysql forms session


【解决方案1】:

在您发布的代码中,实际上没有数据被添加到 PHP 会话中。您需要使用$_SESSION 超全局设置它,按照这些方式,然后才能从会话中获取它: $_SESSION['user'] = $user_home

【讨论】:

  • 谢谢 - 您的意思是将其添加到会话代码中(位于页面顶部)?
  • 好吧,您将在创建后将USER 实例添加到会话中。据推测,您还需要预先用一些值填充该对象
  • '$row = $stmt->fetch(PDO::FETCH_ASSOC); $_SESSION['userID'] = $useid ?>' 我添加了这个.....对吗?
猜你喜欢
  • 2020-11-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-08-31
  • 2020-11-10
相关资源
最近更新 更多