我们目前使用$ _SESSION作为当前会话数据(即登录,当前状态等)。并且该脚本在很长时间内都运行良好,但我们从旧的PHP4服务器更改为PHP5服务器。现在经过一段时间(大约10分钟,但似乎不一致),$ _SESSION被擦除了! (:O)。但似乎PHPSESSID仍然存在于cookie中,因此cookie似乎没有过期......
我的服务器当前设置为:(phpinfo)
可能导致这种情况的原因是什么?我确信它看起来很小,我已经完全看了,是主要原因。
我的会话变量:
Directive Local Value Master Value
session.auto_start Off Off
session.bug_compat_42 On On
session.bug_compat_warn On On
session.cache_expire 15400 15400
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 /dev/urandom /dev/urandom
session.entropy_length 0 0
session.gc_divisor 100 100
session.gc_maxlifetime 154000 154000
session.gc_probability 0 0
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 /var/lib/php /var/lib/php
session.serialize_handler php php
session.use_cookies On On
session.use_only_cookies On On
session.use_trans_sid 0 0
我使用以下“非标准扩展程序”:
-X-调试
-Suhosin
-eAccelerator
答案 0 :(得分:1)
我敢打赌,其他应用程序正在消灭您的会话。他们似乎共享相同的会话save_path。
您使用session_save_path()更改save_path。
答案 1 :(得分:0)
您是否在共享主机上?如果是,请尝试更改session.save_path:Could session_start() in php be messing up my users sessions lengths?