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

php中文网
发布: 2016-06-13 11:48:15
原创
976人浏览过

求助关于记住的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;

判断代码如下:

<?php<br />ob_start();<br />session_start();<br /><br />$login_maxtime = 5; // 用cookie 登入最大次数<br /><br />$session_login = isset($_SESSION['is_login'])? 1 : 0; // 获取session<br /><br />if(!$session_login){ // session 不存在<br /><br />    $is_login = isset($_COOKIE['is_login'])? $_COOKIE['is_login'] : 0; // 获取cookie<br /><br />    if($is_login && $is_login<$login_maxtime){  // cookie存在且,使用cookie赋值给session次数小于设定值<br />        setcookie('is_login', $is_login+1, time()+24*3600);<br />        $_SESSION['is_login'] = 1;<br />        echo 'cur login time:'.$is_login.'<br>';<br />    }else{ // 没有cookie或超过次数<br />        setcookie('is_login');<br />        $is_login = 0;<br />    }<br /><br />}else{ // session 存在<br />    $is_login = 1;<br />}<br /><br />if($is_login==0){<br />    echo 'go to login';<br />}else{<br />    echo 'logined';<br />}<br /><br />?>
登录后复制


模拟登入,写session,cookies
<br /><?php<br />ob_start();<br />session_start();<br />$_SESSION['is_login'] = 1;<br />setcookie('is_login', 1, time()+24*3600);<br />echo 'login success';<br />?><br />
登录后复制

相关标签:
最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号