tp5写入cookie失效

打算统计网站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;
        }

数据库统计结果预览

 

posted @ 2020-09-01 11:05  陈莺莺呀  阅读(862)  评论(0编辑  收藏  举报