几天来我一直绞尽脑汁,试图将从数据库查询中获取的用户详细信息存储到$_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';
}
}
这里的虚拟数据是"Members username",我希望它能够存储作为从列"username"查询的一部分检索到的值。
我试过很多方法,最近用的是这个:
$_SESSION["Username"] = $row["Username"];
但是没有成功。
任何提示非常感谢!
试试这个…你没有从循环内获取行,
$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';
}
}}