3

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

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

我究竟做错了什么?

4

3 回答 3

5

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

于 2009-01-29T04:04:15.930 回答
2

会话开始();必须放在任何将要发送的标题之前,例如在 php 文件上的任何 HTML 标记之前。

于 2010-11-28T23:17:08.103 回答
1

我刚从修复中回来...添加session_start()到文件的顶部 - 甚至在<html>标签之前。在中间做session_start()会出错......不知道为什么。我是新手。不过感谢您的及时回复。

于 2009-01-29T04:07:57.763 回答