【发布时间】:2013-04-12 17:51:19
【问题描述】:
我将我的页面从 Windows 上的 EasyPHP 移到了 Linux 服务器上,并开发了这个新问题。当我重新加载页面或单击链接以将我带回到会话中应可访问的页面(或另一个页面)时,会话信息将丢失,并且用户已注销。
这段改编自W3的sn-p代码似乎说明了这个问题:
<?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 变量。
谢谢
【问题讨论】:
-
当然你想要那个。但是您需要找出是什么阻碍了您首先才能真正解决问题。您需要先解决您的问题。您对会话的工作原理有基本的了解吗?你有没有仔细检查过没有任何东西阻碍你?您是否结束了 PHP 中的错误记录并将级别提高到可能的最高设置?那么错误日志中可能有什么有趣的事情吗?