基于ThinkPHP框架下登录登出权限控制(一).

后台管理员表中 做一个加盐处理 md5双从加密:

function encrypt_password($password){
    //加盐
    $salt = '98765435678908bnjuiygvbnk8';
    return md5( md5($password) . $salt);
}

1, 后台的登录功能:(Login控制器login方法);

 确认form表单完整性,完善name属性和提交地址

               <div class="form-item">
                    <label class="login-icon">
                    </label>
                    <input type="text" id='username' name="username" placeholder="这里输入登录名" required>
                </div>
                <div class="form-item">
                    <label class="login-icon">
                        <i></i>
                    </label>
                    <input type="password" id="password" name="password" placeholder="这里输入密码">
                </div>

 

修改控制器中的login方法  用来接收表单并处理

public function login(){
        //一个方法处理两个逻辑
        if(IS_POST){
            //post请求  表单提交
            //接收参数
            $username = I('post.username');
            $password = I('post.password');
            $code = I('post.code');
            //参数检测
            if(empty($username) || empty($password) || empty($code) ){
                $this -> error('参数不全');
            }
            //验证码校验
            //实例化Verify类
            $verify = new \Think\Verify();
            //调用check方法进行校验
            $check = $verify -> check($code);
            
            if(!$check){
                //验证码错误
                $this -> error('验证码错误');
            }
            //根据用户名查询tpshop_manager表
            $info = D('Manager') -> where(['username' => $username]) -> find();
            // $info = D('Manager') -> where(['username' => $username, 'password' => encrypt_password($password)]) -> find();
            //如果查询到用户,则比对密码(将明文加密)
            if($info && $info['password'] == encrypt_password($password)){
                //用户名存在且密码一致 ,登录成功
                //设置登录标识
                session('manager_info', $info);
                $this -> success('登录成功', U('Admin/Index/index'));
            }else{
                //登录失败
                $this -> error('用户名或者密码错误');
            }
        }else{
            //页面展示

            //①如果已登录 可以直接跳转到后台首页
            //②如果已登录 也可以自动退出重新打开登录页面
            if(session('?manager_info')){
                // $this -> redirect('Admin/Index/index');
                session(null);
            }
            //临时关闭全局布局
            layout(false);
            //调用模板
            $this -> display();
        }
    }

登录成功,一定要设置登录标识到session

 

posted @ 2018-03-11 21:29  臭虫编写工程师小于  阅读(373)  评论(0编辑  收藏  举报