【发布时间】:2014-02-25 00:08:08
【问题描述】:
我被难住了。每个人都说,如果您使用 session_start,即使打开多个浏览器窗口,您也应该获得一个会话。但是,我的会话似乎是特定于页面的。
当我加载第一页 (index.php) 时,它给出了一个会话 ID:sr51j9hhrjjrvbrfboek15l4e4 和一个空的 $_SESSION 数组
然后我登录一个网页 (login.php),该网页生成一个新的 Session ID:v2t8844nglg7uvnsrbr6k9ms43,其中包含一个带有各种变量的 $_SESSION 数组。
当我重新加载第一页时,它将显示旧会话 ID,而不是预期的新会话 ID。它是页面链接的,因为如果我在标签 1 中复制加载页面 2,它将提供与标签 2 中的页面相同的会话 ID,反之亦然。
我已经添加了规则
CacheDisable /local_files
到 httpd.conf 文件无效。
我使用 Apache 2.4(Windows 的 XAMPP 安装),带有 http://php-login.net 高级登录脚本。
页面顶部(在 HTML 标记之前):
session_start();
require_once('includes/connection.php');
接着是:
echo var_dump($_SESSION);
回显 session_save_path();
echo '会话 ID: '.session_id();
在页面顶部的body标签中。 有什么建议吗?
【问题讨论】:
-
您是否正在运行 chrome?无论如何,请尝试使用不同的选项卡,而不是不同的窗口。
-
不,Firefox 最新版本。
-
你试过多个标签而不是多个窗口吗?
-
是的。多个选项卡给出了相同的问题。它是页面链接的,因为如果我在选项卡一中复制加载页面二,它将提供与选项卡 2 中的页面相同的会话 ID,反之亦然。因此我怀疑这是 XAMPP/Apache 安装的缓存问题。
标签: php apache xampp sessionid