创建持久的PHP登录cookie会话

时间:2013-04-28 16:37:10

标签: php session cookies login

我正在努力让我的登录会话持续更长时间,以便人们不会过早地退出我的网站。例如,制作博客文章并在提交时丢失它,因为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, "/");
}

编辑:现在正在解决的问题是非标准引号和撇号。以防万一有人复制此代码并使用它。上面的代码现在可以了!谢谢!

1 个答案:

答案 0 :(得分:1)

如果您希望可以在Cookie过期时添加此内容:

time()+60*60*24*30

这就像是说cookie过期60秒,60分钟,24小时等等。您还应该在此处查看有关Cookie的教程:http://www.w3schools.com/php/php_cookies.asp