1

我们目前使用 $_SESSION 来存储我们当前的会话数据(即登录、当前状态等)。该脚本多年来一直运行良好,但我们从旧的 PHP4 服务器更改为 PHP5 服务器。现在经过一段时间(大约 10 分钟,但似乎不一致)后,$_SESSION 被擦除了!(:哦!)。但似乎 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-调试

-苏霍辛

-e加速器

4

2 回答 2

1

我敢打赌,其他应用程序正在清除您的会话。他们似乎共享相同的会话 save_path。

你使用session_save_path()改变你的 save_path 。

于 2012-04-18T07:17:38.207 回答
0

您在共享主机上吗?如果是,请尝试更改 session.save_path:php 中的 session_start() 会弄乱我的用户会话长度吗?

于 2012-04-18T07:15:52.310 回答