在PHP中大约10分钟后$ _SESSION为空

时间:2012-04-18 06:32:43

标签: php session

我们目前使用$ _SESSION作为当前会话数据(即登录,当前状态等)。并且该脚本在很长时间内都运行良好,但我们从旧的PHP4服务器更改为PHP5服务器。现在经过一段时间(大约10分钟,但似乎不一致),$ _SESSION被擦除了! (:O)。但似乎PHPSESSID仍然存在于cookie中,因此cookie似乎没有过期......

我的服务器当前设置为:(phpinfo)

http://jsfiddle.net/6DjcC/1/

可能导致这种情况的原因是什么?我确信它看起来很小,我已经完全看了,是主要原因。

我的会话变量:

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

2 个答案:

答案 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?