繁体   English   中英

创建持久的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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM