我一直在尝试在成功登录后设置 session cookie。这些 cookie 部分 有效,但我在从数据库表中读取值并将其分配给 session cookie 时遇到问题
当我设置 $_SESSION["User_ID"] = 'test'
并在后面的页面中回显 session cookie 时,它工作正常并显示测试。但是,使用 $row["User_ID"];
我无法让它工作 - 它不显示任何值,所以大概它没有读入值。谢谢大家。
完整登录代码:
<?php
session_start();
$server = "*****.com";
$schema = "*****";
$uid = "******";
$pwd = "******";
$username =$_POST["txt_username"];
$password =$_POST["txt_password"];
mysql_connect($server , $uid , $pwd) or die ("server not found");
mysql_select_db($schema) or die ("Database not found");
$sql = "SELECT User_ID, Username, Password, User_Level
FROM Account
WHERE Username = '$username' AND Password = '$password'";
$record = mysql_query($sql);
$row = mysql_fetch_array($record);
if(mysql_num_rows($record) == 0)
{
die(header("location: LoginFailed.html"));
}
else if(mysql_num_rows($record) == 1)
{
$row = mysql_fetch_array($record);
$_SESSION["User_ID"] = $row["User_ID"];
$_SESSION["User_Level"] = $row["User_Level"];
header("location:Home.html");
}
else
{
$row = mysql_fetch_array($record);
$_SESSION["User_ID"] = $row["User_ID"];
$_SESSION["User_Level"] = $row["User_Level"];
header("location: Home.html");
}
mysql_close();
?>
最佳答案
在您的代码中,您调用了两次 $row = mysql_fetch_array($record);
。
我认为如果您先删除 $row = mysql_fetch_array($record);
,那么您的代码就可以正常工作。
关于php - 在 PHP 中设置 session cookie 时遇到问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20354753/