后台管理员表中 做一个加盐处理 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。