【问题标题】:Save user information in SESSION not working .PHP在会话中保存用户信息不起作用.PHP
【发布时间】:2020-10-05 18:31:47
【问题描述】:

所以我正在将用户数据保存到会话中。我已经设置了第一个用户名和 memberID,看起来工作正常。但是一旦我添加了更多细节来保存会话,就不会在其他页面中阅读它们。会话在数据库连接中开始。不知道哪里出了问题,希望大家帮忙。谢谢

if (password_verify($password, $row['password'])) {

$_SESSION['loggedin'] = true;
$_SESSION['username'] = $row['username'];
$_SESSION['memberID'] = $row['memberID'];
$_SESSION['email'] = $row['email'];
$_SESSION['avatar'] = $row['avatar'];
$_SESSION['loggedin_time'] = time(); 

return true;
}

我在 php 页面中添加的代码:

<?php echo htmlspecialchars($_SESSION['email'], ENT_QUOTES); ?>

已修复

我的声明只选择了会员ID和用户名!!!

【问题讨论】:

  • 你在页面第一行使用了session_start();吗?
  • 我的会话在我连接到数据库时开始,我提到可以读取 memberID 和 username 但其他信息没有。
  • 然后print_r($row)查看是否包含电子邮件或头像信息。
  • print_r($_SESSION['email'] 在头像上显示 1 个相同

标签: php mysql session


【解决方案1】:

始终记得使用session_start() 来设置或使用它。请记住在 .PHP 文件的顶部执行此操作。

第一个 php 页面

session_start();

if (password_verify($password, $row['password'])) {

$_SESSION['loggedin'] = true;
$_SESSION['username'] = $row['username'];
$_SESSION['memberID'] = $row['memberID'];
$_SESSION['email'] = $row['email'];
$_SESSION['avatar'] = $row['avatar'];
$_SESSION['loggedin_time'] = time(); 

return true;
}

另一个 php 页面

session_start();

...

注意:如果不是这样,你应该尝试对这两个变量做一个var_dump(),看看里面是否存储了任何信息。

【讨论】:

  • 我的会话在我连接到数据库时开始。我忘了把它添加到描述中。
  • 尝试对数组做一个var_dump()
  • var_dump on $_SESSION['email'] 显示 NULL
  • var_dump($row) 输出什么?
  • 问题已修复。我对 MySQL 的声明只读取了 memberID 和 username。
【解决方案2】:

固定。

问题是我有声明在我的 PDO 中只选择成员 ID 和用户名!!!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-27
    • 1970-01-01
    • 2013-12-20
    • 2015-03-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多