我试图让我的登录会话持续更长时间,这样人们就不会过早退出我的网站。例如,制作一篇博客文章并在提交时丢失,因为 php 的 cookie 过期了。
理想情况下,我想给他们一个 2 小时的会话,他们不会注销,每次加载页面时都会刷新(下面的代码片段位于每个安全页面的标题之前)
这就是我正在尝试的,但它出现了 setcookie() 的错误,说有被零除的错误?我在这里做错了什么?
//How long sessions last
$hours = 2;
// php.ini setting required for session timeout.
ini_set('session.gc_maxlifetime',$hours*60*60);
ini_set('session.gc_probability',1);
ini_set('session.gc_divisor',1);
//Set the session parameters and start session
$sessionCookieExpireTime=$hours*60*60;
session_set_cookie_params($sessionCookieExpireTime);
session_start();
// Reset the expiration time upon page load
if (isset($_COOKIE[session_name()]))
{
setcookie(session_name(), $_COOKIE[session_name()], time() + $sessionCookieExpireTime, "/");
}
编辑:现在问题是非标准引号和撇号。以防万一有人复制此代码并使用它。上面的代码现在可以工作了,谢谢!
如果您愿意,可以在 cookie 过期时添加此内容:
time()+60*60*24*30
这就像说 cookie 在 60 秒、60 分钟、24 小时等后过期。您还应该在此处查看有关 cookie 的教程:http://www.w3schools.com/php/php_cookies.asp http://www.w3schools.com/php/php_cookies.asp
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)