1

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

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

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

这是正常行为吗...我确定它没有在某处未设置。

抱歉,我知道我没有提供太多信息,但那是因为没有太多信息可以提供。它应该工作,但它没有。

4

1 回答 1

0

我认为您做错了,如果可能,请更改 php.ini 以反映您要应用的 coockie 持续时间。从 php.net 手册中阅读:

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

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

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

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

php_value session.gc_maxlifetime "946080000"

无论如何,最好使用 cookie,会话不会长期使用,而是使用 cookie。

于 2012-05-22T11:33:32.367 回答