我在视图个人资料页面的顶部插入了以下代码:
$username = $_REQUEST['username'];
$cookiesession = mysql_query("SELECT CSToken FROM members WHERE Username = '$username'");
if ( $_SESSION['loggedin'] == $cookiesession ) {
header("Location: /profile.html");
}
由于某些原因,当我查看自己的个人资料页面时,它不会重定向到profile.html。有什么建议?这真让我很沮丧,我无法弄清楚我做错了什么。
我只是回应了$ cookiesession并且回复了以下回复:
Resource id #16
任何想法?!非常感谢提前!
答案 0 :(得分:1)
mysql_query返回结果 HANDLE ,而不是您选择的字段。你需要先获取一行:
$result = myqsl_query("SELECT ...") or die(mysql_error());
$row = mysql_fetch_assoc($result);
if ($row['CSToken'] == $cookiesession) { ...}
您的代码正在尝试将该结果句柄与字符串/ int进行比较,这当然不会起作用。
另请注意,您容易受到SQL injection attacks的攻击,并且正在使用已弃用的数据库接口。
答案 1 :(得分:0)
您必须使用session_start()
开始会话。此调用会将$_SESSION
数组恢复为上一次请求后的数据。
$cookiesession
是一个PHP资源。 PHP脚本执行后释放PHP资源,因此将它们存储在会话中是没有意义的。我怀疑你希望$cookiesession
成为数据库中的记录。使用mysql_fetch_array($cookiesession)
检索数据库记录。但请注意,不推荐使用mysql扩展,因此不应在新代码中使用。请改用PDO或MySQLi。