创建持久的php登录cookie会话


Create lasting php login cookie sessions

我想让我的登录会话持续更长时间,这样人们就不会过早地退出我的网站。例如,写了一篇博客文章,当他们提交时丢失了它,因为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