zoukankan      html  css  js  c++  java
  • 基于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

     

  • 相关阅读:
    LeetCode_Search Insert Position
    LeetCode_Two Sum
    LeetCode_Merge Two Sorted Lists
    LeetCode_Pascal's Triangle
    spring中方法级验证参数
    Curator Recipes(Cache&Counter)
    [译]ZOOKEEPER RECIPES-Leader Election
    [译]ZOOKEEPER RECIPES-TWO PHASED COMMIT
    [译]ZOOKEEPER RECIPES-Locks
    [译]ZOOKEEPER RECIPES-Queues
  • 原文地址:https://www.cnblogs.com/yumingzhao/p/8546155.html
Copyright © 2011-2022 走看看