打算統計網站uv,使用cookie來實現
原先錯誤代碼如下:
// 獲取UV function getUv(){ #當前url $url= explode('/',$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']); // cookie初始化 Cookie::init(['prefix'=>$url,'expire'=>60*60*24]); if( empty(Cookie::get('access',$url)) || !Cookie::has('access',$url) ){ $uv=1; }else{ $uv=0; } Cookie::set("access",1); //訪問過標記 return $uv; }
頁面沒有報錯,查看到chrome瀏覽器也確實寫入了cookie
仔細翻了翻tp5文檔關於cookie的前綴
這個前綴必須是字符加上下划線的格式,我之前用了類似xxx.html作為前綴是不被支持的
修改代碼如下正常
// 獲取UV function getUv(){ #當前url $urlArr= explode('/',$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']); $path = end($urlArr); $pathArr = explode('.',$path); $url = $pathArr[0].'_'; // cookie初始化 Cookie::init(['prefix'=>$url,'expire'=>60*60*24]); if( empty(Cookie::get('access',$url)) || !Cookie::has('access',$url) ){ $uv=1; }else{ $uv=0; } Cookie::set("access",1); //訪問過標記 return $uv; }
數據庫統計結果預覽