PHP会话似乎无法正常工作

时间:2009-01-29 04:01:24

标签: php session cookies session-variables

会话变量显然对我不起作用。我不知道我做错了什么。这是我用来检查有效密码的代码:

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来验证。

我做错了什么?

3 个答案:

答案 0 :(得分:5)

您知道在任何请求中使用session_start()变量之前必须编写$_SESSION,对吧?看起来你没有把它放在index.php的任何地方。

答案 1 :(得分:2)

在session_start();必须放在任何将被发送的标题之前,例如在php文件上的任何HTML标记之前。

答案 2 :(得分:1)

我刚回来修复了...在文件顶部添加了session_start() - 甚至在<html>标记之前。在中间做session_start()会产生错误......不知道为什么。我是新手。谢谢你的快速反应。