2009-01-29 96 views
3

会话变量显然不适合我。我不知道我做错了什么。这是我使用的检查和有效的密码代码:PHP会话似乎不工作

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进行验证。

我在做什么错?

+1

这可能很愚蠢,但你确实有“session_start();”在index.php上,对吗?你的代码看起来应该可以工作。 – Sasha 2009-01-29 04:03:04

回答

5

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

1

我刚从修复过程中回来...在文件顶部添加了session_start() - 即使在<html>标记之前。在中间做session_start()会给出错误......不知道为什么。我对此很陌生。尽管感谢您的及时回应。

+1

session_start必须在任何头文件发送之前调用,这可能是为什么当你放在中间时引发错误。 – Juan 2009-01-29 04:27:23

2

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