【问题标题】:PHP session cookie resets on page refreshPHP会话cookie在页面刷新时重置
【发布时间】:2019-08-16 14:28:31
【问题描述】:

我有一个基于 PHP 会话的具有登录功能的工作网页。最近我注意到在某些浏览器(Google Chrome 桌面、Vivaldi)中我无法登录。经过一番窥探,我注意到会话 cookie 在每次重定向/页面刷新时都会发生变化。这不会发生在移动浏览器和 Edge 中。匿名 Chrome 窗口也可以使用。

我尝试禁用所有扩展,但没有任何改变。不过可能重要的是我的服务器(Apache)运行在 http,而不是 https。

我不确定要给你看什么。代码一年没有改变,它在一个月前工作。改变的是服务器配置——即session.save_pathopen_basedir 冲突。但这不应该只影响某些浏览器。我已经搜索了几个小时,但我不知道该怎么想。

编辑:非常有趣!我一直在使用信息图标检查 cookie。当我在 devtools 中打开应用程序面板时,根本没有设置 cookie。

会话配置:

Session Support enabled
Registered save handlers         files user
Registered serializer handlers   php_serialize php php_binary wddx
session.auto_start               Off
session.cache_expire             180
session.cache_limiter            nocache
session.cookie_domain            no value
session.cookie_httponly          no value
session.cookie_lifetime          0
session.cookie_path              /
session.cookie_secure            0
session.gc_divisor               1000
session.gc_maxlifetime           1440
session.gc_probability           1
session.lazy_write               On
session.name                     PHPSESSID
session.referer_check            no value
session.save_handler             files
session.save_path                E:\xampp\tmp
session.serialize_handler        php
session.sid_bits_per_character   5
session.sid_length               26
session.upload_progress.cleanup  On
session.upload_progress.enabled  On
session.upload_progress.freq     1%
session.upload_progress.min_freq    1
session.upload_progress.name     PHP_SESSION_UPLOAD_PROGRESS
session.upload_progress.prefix   upload_progress_
session.use_cookies              1
session.use_only_cookies         1
session.use_strict_mode          0
session.use_trans_sid            0

【问题讨论】:

  • 如果您检查浏览器的存储,是否创建了 PHPSESSID cookie?如果是这样,我们能否获得有关您的配置的更多信息?你能告诉我们 phpinfo() 的会话部分吗?

标签: php session cookies


【解决方案1】:

我认为“某些”浏览器会缓存内容并保持旧的“会话”处于活动状态,而其他浏览器则不会,并在每次刷新后请求/检查新会话。我可能完全错了,但这是我的想法。

【讨论】:

  • 感谢分享想法,但如果您对答案有疑问,请使用评论部分。如果它适用于 OP,您可以将其发布为答案
  • 它说我必须有 50 个代表才能评论原始帖子,但我可以评论我自己的答案。
  • 我不确定这对我的 php 代码意味着什么。我已经在每个文件的开头调用了session_start(),这应该会恢复现有会话。 chrome 在匿名模式下工作
猜你喜欢
  • 1970-01-01
  • 2016-06-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-08-16
  • 1970-01-01
  • 1970-01-01
  • 2015-11-09
相关资源
最近更新 更多