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

     

  • 相关阅读:
    BZOJ 3132: 上帝造题的七分钟 树状数组+差分
    PAT Advanced 1006 Sign In and Sign Out (25 分)
    PAT Advanced 1011 World Cup Betting (20 分)
    PAT Basic 1032 挖掘机技术哪家强 (20 分)
    PAT Basic 1028 人口普查 (20 分)
    PAT Basic 1004 成绩排名 (20 分)
    大数据数据库HBase(二)——搭建与JavaAPI
    PAT Advanced 1009 Product of Polynomials (25 分)(vector删除元素用的是erase)
    PAT Advanced 1002 A+B for Polynomials (25 分)(隐藏条件,多项式的系数不能为0)
    PAT Basic 1041 考试座位号 (15 分)
  • 原文地址:https://www.cnblogs.com/yumingzhao/p/8546155.html
Copyright © 2011-2022 走看看