/*
* 当不涉及验证码的时候
*/
//统计游客(未登录)人数
$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);//真实会员人数