欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

关于记住的cookie记数有关问题

程序员文章站 2023-12-23 21:02:33
...
求助关于记住的cookie记数问题
setcookie("cookie_name", "abcd", time()+24*3600);

如果有设置这样子的cookie,用户只要在24小时同台电脑无需登录就可以直接登录了,但是呢,我想如果用户关闭浏览器后,重新打开浏览器想让他有个登录次数,不知道如何实现,当然如果他24小时关闭浏览器100次再打开算100个登录,我们知道如果用户自行登录可以直接update一次,但是这们子用户不登录,能否通过cookie或者其他解决,谢谢。
------解决方案--------------------
你检查cookie值就是了,存在就+1。
------解决方案--------------------
可以配合session实现

先判断session是否存在,否则读cookie,然后将cookie赋值给session。
每一次cookie赋值给session,就相当于用户login一次,cookie+1;

判断代码如下:
ob_start();
session_start();

$login_maxtime = 5; // 用cookie 登入最大次数

$session_login = isset($_SESSION['is_login'])? 1 : 0; // 获取session

if(!$session_login){ // session 不存在

$is_login = isset($_COOKIE['is_login'])? $_COOKIE['is_login'] : 0; // 获取cookie

if($is_login && $is_login setcookie('is_login', $is_login+1, time()+24*3600);
$_SESSION['is_login'] = 1;
echo 'cur login time:'.$is_login.'
';
}else{ // 没有cookie或超过次数
setcookie('is_login');
$is_login = 0;
}

}else{ // session 存在
$is_login = 1;
}

if($is_login==0){
echo 'go to login';
}else{
echo 'logined';
}

?>


模拟登入,写session,cookies

ob_start();
session_start();
$_SESSION['is_login'] = 1;
setcookie('is_login', 1, time()+24*3600);
echo 'login success';
?>
关于记住的cookie记数有关问题

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。

相关文章

相关视频


上一篇:

下一篇: