PHP 会话和 Cookie 被删除?



在Chrome和Firefox上,这持续大约一个小时,然后会话cookie和javascript设置的其他cookie消失。我什至没有关闭浏览器。

session_set_cookie_params(946080000); // 30 years
session_start();
$_SESSION['login']=true;

逝。会话 Cookie 已消失。我认为它不是浏览器的东西,因为它在Chrome和Firefox上都消失了。我没有在IE上测试。

这是正常行为吗...我敢肯定它不会在某个地方被取消设置。

对不起,我知道我没有提供太多信息,但那是因为没有太多信息可以提供。它应该有效,但它没有。

我认为你做错了,如果可能的话,改变 php.ini 以反映你想要应用的 coockie 持续时间。阅读 php.net 手册:

"设置在 php.ini 文件中定义的 cookie 参数。这个的效果 函数仅在脚本持续时间内持续。因此,您需要 为每个请求和之前调用 session_set_cookie_params(( 调用 session_start((。

此函数更新相应 PHP 的运行时 ini 值 可以使用 ini_get(( 检索的 ini 配置键。

这意味着在执行 session_start(( 之前,您需要在所有 php 文件中调用它 EVERYTIME。可能有解决方案的博客文章:http://blog.centresource.com/2006/05/23/php-session-lifetime-an-adventure/

要更改 PHP ini 中的值,请使用以下行:

php_value session.gc_maxlifetime "946080000"
无论如何,最好使用

coockie,会话不会用于较长的生命周期,而是使用cookie。