【问题标题】:Unwanted independent sessions for two separate pages两个单独页面的不需要的独立会话
【发布时间】: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


【解决方案1】:

好的,在这里找到答案:My session ID's stopped working

一个页面是 localhost:8001,而第二个页面是 127.0.0.1:8001,服务器将它们视为两个单独的页面以用于会话,同时提供同一个页面。

【讨论】:

    【解决方案2】:

    session_start() 将创建一个可以跨相同浏览器/选项卡使用的单个会话。

    【讨论】:

    • 我的情况不是这样。没那么简单... :-(
    • 您应该可以尝试以下示例代码:
    • 这就是我用来识别问题的方法,这两个页面返回了不同的会话 ID。
    猜你喜欢
    • 2011-05-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-09
    • 2013-09-26
    • 1970-01-01
    • 1970-01-01
    • 2012-04-05
    相关资源
    最近更新 更多