Thinkphp中设置cookie

浏览:12696 发布日期:2013/06/08 分类:技术分享 关键字: cooki 账号 密码
每次使用thinkphp搭建的后台,一关闭浏览器,又得重新输入账号和密码,有点麻烦,用cookie可以做到,关闭浏览器,再次打开浏览器的时候,就不需要输入账号和密码,对客户体验度也很好,虽然安全性有点低,但是是自己电脑倒是无所谓!下面我就把写的几行代码共享吧!

thinkphp中cookie类,比较方便

在配置文件config.php设置cookie的参数

'COOKIE_DOMAIN' => www.0796jg.com', //cookie的有效域名
'COOKIE_PATH' => '/' , //保存路径

'COOKIE_PREFIX' => 'test_', //cookie的前缀
'COOKIE_EXPIRE' => 36000, //cookie的生存时间

'USER_AUTH_KEY' =>'authId', // 用户认证SESSION标记


//设置cookie,在public类中的checklogin方法中写入:
Cookie::set(C('USER_AUTH_KEY'),$authInfo['id']);//$authInfo['id']为用户id号

//程序的流程是先到执行common类中的_initialize()方法,检测是否有权限你能够登陆,最先开始是执行 $this->checkUser();方法找到checkUser方法输入如下代码:protected function checkUser() {
        if(!isset($_SESSION[C('USER_AUTH_KEY')])) {
            //检查cookie,
            $AUTH_KEY = Cookie::get(C('USER_AUTH_KEY'));
            if (!empty($AUTH_KEY)){
                $User = M('User')->where('id = '.$AUTH_KEY)->find();
                if (!empty($User)){
                    $_SESSION[C('USER_AUTH_KEY')]   =   $User['id'];
                    $_SESSION['email']  =   $User['email'];
                    $_SESSION['loginUserName']      =   $User['name'];
                    $_SESSION['lastLoginTime']      =   $User['last_login_time'];
                    $_SESSION['login_count']    =   $User['login_count'];
                    $_SESSION['subsite_id'] =   $User['subsite_id'];
                    if($User['account']=='admin') {
                        $_SESSION['administrator']      =   true;
                    }
                }
            }else{
                $code = '<html><head></head><body><script language="javascript">';
                $code .= "\nif (parent)\n\tparent.location.href = \"/index.php/Public/login\";\n";
                $code .= "else\n\twindow.location.href = \"index.php/Public/login\";\n";
                $code .= '</script></body></html>';
                exit($code);
            }
        }
    }
最终就设置成功了!
最佳答案
评论( 相关
后面还有条评论,点击查看>>