【问题标题】:chrome drops sessionschrome 删除会话
【发布时间】:2012-07-29 18:42:52
【问题描述】:

我在开发 PHP 网站时遇到了 Google Chrome 问题。

我开始一个会话,并在其中存储一个标志。但是当我重新加载页面时,会话值无法识别。

有什么问题吗?谢谢回复。

session_start();
if (isset($_SESSION['chrome'])) {
  echo 'SESSION OK';
}
else {
  $_SESSION['chrome'] = 'yes';
}

这是简单的代码,但它不起作用......

【问题讨论】:

  • 所以只有谷歌浏览器才会失败?..
  • 您是否使用同一个域访问该页面,我的意思是 domain.com 与 www.domain.com?
  • 是的,仅适用于 chrome。 F5会话停留后,但点击同一页面的其他网址后消失。
  • 点击后消失?看起来您正在更改域或其他内容...您可以发布页面的网址和您单击的链接吗?如果你在 session_start() 之前有一些配置,你也应该发布。

标签: php session google-chrome


【解决方案1】:

Chrome 在登录系统上没有持久化 php 会话时遇到了完全相同的问题。找到以下文章:https://secure.kitserve.org.uk/content/php-session-cookie-problems-google-chrome-and-internet-explorer 上面写着:

在 Chromium 中测试本地站点时,您必须通过 IP 地址(例如 127.0.0.1)访问它或将 cookie 域参数设置为空字符串。

我希望这会有所帮助。

【讨论】:

    【解决方案2】:

    我有完全相同的问题,但在 IIS 和 ASP.Net Mvc 上。 F5 将使会话恢复,但移动到另一个页面再次导致问题。我发布了 another SO question 的答案。试试看是否有效。

    【讨论】:

      【解决方案3】:

      我认为这个问题的答案是在 session_set_cookie_params 之前使用 session_name。比如……

      session_name('MySession');
      session_set_cookie_params( 3600*24, '/', $_SERVER['HTTP_HOST'], is_https() );
      session_cache_expire(60*24); // cache expire 60 mins
      

      【讨论】:

        【解决方案4】:

        检查您是否在浏览器中禁用了 cookie。

        【讨论】:

          猜你喜欢
          • 2012-05-23
          • 1970-01-01
          • 2013-09-12
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2014-06-10
          • 2013-05-28
          相关资源
          最近更新 更多