Home  >  Article  >  Backend Development  >  关于记住的cookie记数有关问题

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

WBOY
WBOYOriginal
2016-06-13 11:48:15740browse

求助关于记住的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<$login_maxtime){ // cookie存在且,使用cookie赋值给session次数小于设定值
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';
?>

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn