原理
将客户端ip与当前文章id绑定生成session,下次访问,判断时间是否在合法范围
代码
/** 浏览量加一 两分钟内重复访问无效
* @param $id 文章id
*/
protected function incHits($id){
if($vid){
$sessonName = md5($id.get_client_ip(0,true)); //get_client_ip()thinkphp自带获取客户端ip方法(tp3.2)
$hitTime = $_SESSION[$sessonName];
if(empty($hitTime) || (time()-$hitTime) >= 120){
$_SESSION[$sessonName] = time();
D('article')->where(['id'=>vid])->setInc("hits");//setInc()实现hits+1
}
}
}
使用
public function(){
$this->incHits($id);
}