• 技术文章 >后端开发 >php教程

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

    2016-06-13 11:48:15原创381
    求助关于记住的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';
    ?>
    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:nbsp login session cookie is
    上一篇:php 怎么去除回车换行符 下一篇:远程连接mysql查询数据库有关问题
    VIP课程(WEB全栈开发)

    相关文章推荐

    • 【活动】充值PHP中文网VIP即送云服务器• 详细介绍PHP中时间处理类Carbon的用法• 分享一个neo4j(图形数据库)的PHP库!• 一文聊聊php5.4的特性【总结】• PHP商城那个好? 2022年十大开源PHP商城【分享】• PHP常量两种定义方法:define和const有什么区别
    1/1

    PHP中文网