我将我的页面从 Windows 上的 EasyPHP 移到了 Linux 服务器上,并开发了这个新问题。当我重新加载页面或单击链接以将我带回到会话中应可访问的页面(或另一个页面)时,会话信息将丢失,并且用户已注销。
改编自的这段代码W3
似乎说明了这个问题:
<?php
//Thing1.php
session_start();
if (! isset ($_SESSION['views'])) $_SESSION['views']='first load';
else $_SESSION['views']='reloaded';
?>
<html>
<body>
<?php
//retrieve session data
echo "Pageviews=". $_SESSION['views'];
?>
<br>
<a href="thing1.php">Reload this page</a>
</body>
</html>
在 EasyPHP 上,它最初显示Pageviews=first load
,但在刷新或单击返回同一页面的链接后,它总是显示Pageviews = reloaded
。
在我的 Linux 机器上,它总是显示Pageviews=first load
. 这与我打印数组时一致,该$_SESSION
数组始终为空。
Linux 机器运行 PHP 5.3.10-1unbuntu3.6 和 Apache 2.2;EasyPHP 有 PHP 5.4.4 和 Apache 2.4.2。
我在这里想要的是 EasyPHP 下的行为:对于 Linux 版本,也要记住$_SESSION
变量。
谢谢