会话在页面之间消失了

时间:2010-11-09 03:34:38

标签: php session session-variables

我正在创建登录页面,由于某种原因,会话将不会在我设置它的位置和我转发到的页面之间保持不变。我可以在会话初始化的页面中注释掉标题,并看到会话中包含数据。但是,当我在目标页面中执行print_r时,会话为空。

我已经确定调用了session_start。此站点只有一个域,我的浏览器设置为接受cookie。我可以转发到任何其他页面并查看会话数据,但不是这个。

是否有人可以提供帮助调试?

$_SESSION['auth'] = $auth;
header( "Location: /" ); // commenting this out shows the data is in fact there

我想保护索引页面,以便测试是否设置了session ['auth']。如果没有,我转发到/ user / login,允许用户登录。如果成功,我们将返回到索引页面,通过isset会话测试。它虽然失败,但没有会话数据。

3 个答案:

答案 0 :(得分:1)

set.php:     

session_start();
$_SESSION['auth'] = true;

header('Location: /');

的index.php:     

session_start();

var_dump($_SESSION);

创建这两个文件并请求set.php。你看到了什么?

答案 1 :(得分:0)

如果设置会话变量,然后执行标题重定向,则需要在重定向之前添加session_write_close(),否则将丢失sesson修改。

答案 2 :(得分:0)

我跑了很多东西,意外地从带有'www'的页面重定向。在没有的页面的URL中。我不确定为什么会发生这种情况,但由于某种原因,网站之间的会话在有和没有'www。'的情况下是不同的。