PHP session ID 随每个请求而变化

标签 php session

我刚刚将我的应用程序从本地 WAMP 迁移到实际的在线服务器。这导致了 session ID 未按显示保存的问题。

  • 我已检查在 session_start 之前是否输出了不需要的字符
  • 我似乎找不到任何保存在我的/tmp 中的 session 文件

这些是我的 session 设置:

session.auto_start  Off Off
session.bug_compat_42   Off Off
session.bug_compat_warn On  On
session.cache_expire    180 180
session.cache_limiter   nocache nocache
session.cookie_domain   no value    no value
session.cookie_httponly Off Off
session.cookie_lifetime 0   0
session.cookie_path /   /
session.cookie_secure   Off Off
session.entropy_file    no value    no value
session.entropy_length  0   0
session.gc_divisor  1000    1000
session.gc_maxlifetime  1440    1440
session.gc_probability  1   1
session.hash_bits_per_character 5   5
session.hash_function   0   0
session.name    PHPSESSID   PHPSESSID
session.referer_check   no value    no value
session.save_handler    files   files
session.save_path   /tmp    /tmp
session.serialize_handler   php php
session.use_cookies On  On
session.use_only_cookies    On  On
session.use_trans_sid   0   0
  • 在线服务器正在运行:PHP 版本 5.3.9,而 WAMP 是:PHP 版本 5.3.5。
  • 通过查看发送的 header 和每次加载页面时的响应,我得到以下信息,set-cookie 发送了适当的 session ID,收到的响应发送了一个新的 session ID,就好像没有请求任何内容一样。
  • 我在预览 URL 上运行网站(启用 SSL)。我不知道这是否与此有关,我的域尚未注册。
  • 错误代码很简单:

    $sId = session_id();

    if ($sId == '') { session_start(); }

最佳答案

我刚刚遇到并解决了完全相同的问题。

事实证明,cookie PHPSESSID(保存 session 记录)已发送但被服务器忽略,因此 session 未维护,每次页面重新加载或更改时服务器都会重新启动 session 。

问题是我的 wp-config.php 这一行:

@ini_set('session.cookie_secure','On');

这意味着如果连接不安全,每个 cookie 都将被忽略,因此服务器将重新启动 PHPSESSID cookie 和 session 。

检查您的 wp-config.php 或您的 init.php。是 cookie 的问题。

关于PHP session ID 随每个请求而变化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13306713/

相关文章:

php - 这对于用户登录和验证是否足够安全? (PHP、MySQL、 session )

php - 超链接到 php 页面正在下载页面

php - 根据 WooCommerce 产品类型显示或隐藏管理自定义设置字段

php - 从 mysql 中的 3 个不同表中选择和排序

java - 可以将 Thread 对象存储在 session 或应用程序属性中吗?

php - CodeIgniter 的 ci_sessions 是否需要偶尔清空?

php - 如何将文件夹名称更改为ubuntu根目录

php - 正则表达式:删除方案,除非它是 http(s)。 (捕获负后视模式)

python - 在 sqlalchemy 函数中避免样板 session 处理代码

asp.net - 为什么页面处理的 AspNetSessionData 阶段会延迟我的页面 20 秒以上?