为什么我在页面更改时丢失了PHP会话?

时间:2013-03-25 02:08:05

标签: php session

我设置了一个登录系统,它存储了一个会话变量并在每个页面上进行了检查,但之后我又搬到了新的服务器上。

现在我设置的任何会话变量仅在其设置的页面上可用。我一直在寻找可能发生这种情况的原因,并且已经克服了权限问题。这可能与错误的网址有关吗?服务器上的其他所有内容似乎都运行良好。

如果有帮助的话,我正在运行最新版本的PHP和Apache。

2 个答案:

答案 0 :(得分:2)

因为您可能(只是假设)在您需要的其他页面中没有session_start();。例如,创建一个名为session.php的页面

<强> session.php文件

session_start(); 
if (!isset($_SESSION))
{
 // Enforce logout as session is not set.
}

然后:

include "session.php";

在需要登录功能的网页中使用此代码段。

答案 1 :(得分:0)

我以前遇到过这样的问题。您可以尝试使用session_id()首次启动会话时设置会话ID,然后在每个session_start()之前使用相同的会话ID。

例如:

<?php
   session_id(integer);
   session_start();
?>