会话变量显然对我不起作用。我不知道我做错了什么。这是我用来检查有效密码的代码:
if ($input_password_hash == $password_hash)
{
session_start();
$_SESSION['is_user'] = 1;
header("Location: ../new_look"); //or Location: index.php
}
else echo "Wrong password.";
在index.php文件中(重定向到的位置),我有这段代码:
if ($_SESSION['is_user'] == 1)
{
//show index page with navigation bar for registered user
}
else
{
//do something else
}
但它根本不起作用。
会话显然已经启动,可以通过检查cookie来验证。
我做错了什么?
答案 0 :(得分:5)
您知道在任何请求中使用session_start()
变量之前必须编写$_SESSION
,对吧?看起来你没有把它放在index.php的任何地方。
答案 1 :(得分:2)
在session_start();必须放在任何将被发送的标题之前,例如在php文件上的任何HTML标记之前。
答案 2 :(得分:1)
我刚回来修复了...在文件顶部添加了session_start()
- 甚至在<html>
标记之前。在中间做session_start()
会产生错误......不知道为什么。我是新手。谢谢你的快速反应。