【发布时间】:2015-07-25 09:18:47
【问题描述】:
几天来,我一直在绞尽脑汁,试图将从数据库查询中获取的用户详细信息存储到 $_SESSION 变量中。
我在完成网站另一部分的构建时将其放在次要位置,并使用我输入的虚拟数据对其进行测试。
代码可以很好地处理虚拟数据,但是当我尝试在其中实现查询结果时无法运行。我试过跟随其他人如何设置它,但我的就是不起作用。
这是我的脚本,其中包含有效的虚拟数据:
$query = "SELECT * FROM members WHERE Email='$Email' AND Activation IS NULL";
$result = $dbc->query($query);
$password_match = 0;
if ($result->num_rows > 0) {
while ($row = $result->fetch_assoc()) {
$password_match = password_verify($Password, $row["Password"]);
}
if ($password_match) {
$_SESSION["Username"] = "Members username";
header("Location: page.php");
}
else {
$msg_error= 'Either Your Account is inactive or Email address /Password is Incorrect';
}
}
这里的虚拟数据是“会员用户名”,我希望它存储从“用户名”列作为查询的一部分检索到的值。
我尝试了很多方法,最近使用的是这个:
$_SESSION["Username"] = $row["Username"];
但是没有运气。
任何指针都非常感谢!
【问题讨论】:
-
你开始会话了吗?
-
在将变量加载到
Session之前,您可能需要添加此session_start(); -
您是否使用
echo $row["Username"]之类的方法来验证您的变量是否为空?你在 page.php 中也有session_start()吗? -
我已经在页面前面使用
session_start();开始了会话。正如我所说,我当前设置的会话有效并将其带到登录页面,并将显示“成员用户名”来代替我想要的位置。我还没有回应它,但鉴于查询的其余部分工作正常(即我可以从此查询中检索密码)并且数据库中的用户名不是空的,我想它可以工作。我现在试试 echo 看看。