zoukankan      html  css  js  c++  java
  • session统计在线人数

    /*
    * 当不涉及验证码的时候
    */

    //统计游客(未登录)人数

    $map = array('session_expire'=>array('gt',NOW_TIME),'session_data'=>array('eq',''));
    $youke = D('Session')->where($map)->count();
    dump($youke);


    //统计会员(已登录)人数

    $map = array('session_expire'=>array('gt',NOW_TIME),'session_data'=>array('neq',''));
    $huiyuan = D('Session')->where($map)->count();
    dump($huiyuan);
    

    //统计在线总人数

    $map = array('session_expire'=>array('gt',NOW_TIME));
    $inline = D('Session')->where($map)->count();
    dump($inline);



    //在用户表增加sessionid字段,记录登录sessionid,判断一个用户是否在线

    $session_id = session_id();
    $map = array('session_id'=>$session_id,'session_expire'=>array('gt',NOW_TIME),'session_data'=>array('neq',''));
    $res = D('Session')->where($map)->find();
    if($res)dump('该用户在线。');else dump('该用户不在线。');


    //验证码也会存入session,所以我们判断的时候,就不能值统计有值的记录了。
    //需要先获取有值的数据,再判断里面有没有保存用户信息的参数名。虽然session_data字段是用二进制存储的,但是查询出来就是一个字符串。
    //session('user',$data);//用户登录信息
    //获取真实会员数
    //查询有值的session记录

    $list = D('Session')->where(array('session_data'=>array('NEQ',''),'session_expire'=>array('gt',NOW_TIME)))->select();
    dump($list);
    //判断值里是否有会员标识
    $count=0;
    foreach($list as $k=>$value){
    if(strpos($value['session_data'],'user')){
    $count++;
    }
    }
    dump($count);//真实会员人数
    

      

  • 相关阅读:
    Ubuntu Linux markdown编辑工具 typora 安装
    ref以及传值传址的理解
    3. 无重复字符的最长子串
    30. 串联所有单词的子串 (哈希+滑动窗口)
    525. 连续数组 (哈希表)
    438. 找到字符串中所有字母异位词 (滑动窗口)
    451、根据字符出现频率排序(哈希 加优先队列)
    743. 网络延迟时间
    310. 最小高度树
    8皇后问题
  • 原文地址:https://www.cnblogs.com/zhgblog/p/4205678.html
Copyright © 2011-2022 走看看