背景链接:https://stackoverflow.com/questions/7014945/php-upgrade-5-2-to-5-3-session-issue
我已将 2008 标准服务器上的 PHP 从 PHP 5.2 升级到 PHP 5.3。升级后,会话不再正常工作。
我已经从我的 PHP.ini 文件中复制了适用的设置,并根据服务器或 PHP 的建议配置了新设置。
PHP 正确执行,但是会话数据未被保存。
我的会话数据存储在 c:\temp 中。对于创建的每个会话,我都可以在此文件夹中看到会话文件。但是,没有任何信息写入会话文件。权限方面,IUSR 和 EVERYONE 对此文件夹具有写访问权限。
如果我降级到 PHP 5.2,会话将被正确保存并且网站可以正常运行。
我已遵循建议以确保我的代码得到优化。正确关闭会话文件并强制重置会话。
我困惑了。
会议
已启用会话支持 注册保存处理程序文件用户 sqlite 注册序列化处理程序 php php_binary wddx
指令局部值主值 session.auto_startOffOff 会话错误_compat_42OnOn session.bug_compat_warnOnOn session.cache_expire180180 session.cache_limiternocachenocache 会话.cookie_domain没有价值没有价值 session.cookie_httponlyOffOff session.cookie_lifetime00 session.cookie_path// session.cookie_secureOffOff 会话.entropy_文件没有价值没有价值 会话.熵_长度00 会话.gc_divisor100100 session.gc_maxlifetime14401440 session.gc_probability11 session.hash_bits_per_character44 会话.hash_函数00 会话.名称PHPSESSID53PHPSESSID53 session.referer_check没有价值没有价值 session.save_handlerfiles文件 session.save_path/temp/temp session.serialize_handlerphpphp session.use_cookiesOnOn session.use_only_cookiesOnOn 会话.use_trans_sid00
答案1
问题与最后一个会话名称“(@#!_D@R&$%(){*@)_D_296”,它以某种方式使整个浏览器会话无效,并从会话中删除所有数据。
删除“(”后@#!_D@R&$%(){*@)_D_296" 从会话名称中,登录会话再次开始工作。
详情见https://stackoverflow.com/questions/7014945/php-upgrade-5-2-to-5-3-session-issue