php tp3.2 同时在线人数的统计、同时在线人数上限限制(简易版)
S()方法:TP框架的缓存设置与获取方法;
S(‘name’,‘data’,‘time’):此形式是设置缓存;
S(‘name’):此形式是获取缓存;
name:缓存名
data:缓存值
time:过期时间
C()方法:TP框架获取配置值方法;
//此处的登录,只显示了缓存的操作,直接加到你的项目登录中即可
public function login() {
//同时在线人数,限制为500;false为首次登录
if((S('SESSIONID_COUNT') != false) && !(S('SESSIONID_COUNT')<500)){
$res['status'] = 0;
$res['info'] = "当前在线用户已达上限,暂时不允许登录";
$this->ajaxReturn($res,'json');
}
//过期时间
$outTime = $this->getOutTime();
//如果没有此缓存项,赋予初始值,初始值用C()方法从配置文件中获取
if(S('SESSIONID_COUNT') == false){
//初始值
$start = C('SESSIONID_COUNT');
//初始设置缓存
S('SESSIONID_COUNT',$start);
}
//正常登录时,设置缓存
S('SESSIONID_COUNT',S('SESSIONID_COUNT')+1,$outTime);
}
public function getOutTime(){
$year = date("Y");
$month = date("m");
$day = date("d");
//缓存过期时间设置为每天的23:55,到时自动过期
$end = mktime(23,55,00,$month,$day,$year);
$outtime = $end-time();
return $outtime;
}
//此处的退出,只显示了缓存的操作,直接加到你的项目退出中即可
public function logout() {
//退出的登录时,缓存值减1
S('SESSIONID_COUNT',S('SESSIONID_COUNT')-1,$outTime);
}