在Chrome和& Firefox,这比会话cookie持续大约一个小时,而javascript设置的其他cookie消失了。我甚至没有关闭浏览器。
session_set_cookie_params(946080000); // 30 years
session_start();
$_SESSION['login']=true;
不见了。会话cookie消失了。我认为它不是浏览器的东西,因为它在Chrome和& Firefox浏览器。我没有在IE上测试。
这是正常的行为......我确定它不会在某处被取消。
抱歉,我知道我没有提供太多信息,但那是因为没有太多信息要提供。它应该工作,但它没有。
答案 0 :(得分:0)
我认为你做错了,如果可能的话,改变php.ini以反映你想要应用的coockie持续时间。从php.net手册阅读:
“设置php.ini文件中定义的cookie参数。这个效果 函数仅持续脚本的持续时间。因此,你需要 为每个请求和之前调用session_set_cookie_params() 调用session_start()。
此函数更新相应PHP的运行时ini值 可以使用ini_get()检索的ini配置键。“
这意味着你需要在执行session_start()之前在所有php文件中调用它。可能有解决方案的博文:http://blog.centresource.com/2006/05/23/php-session-lifetime-an-adventure/
要更改PHP ini中的值,请使用以下行:
php_value session.gc_maxlifetime "946080000"
无论如何,使用coockie更好,会话不会用很长时间,而是使用cookie。