365体育备用网址报道25.3.1 身份验证_365体育备用网址官网资讯

登录功能一般是指是指用户输入用户名、密码以及验证码后,后台检测用户身份并放行进入主界面。本项目登录功能中,有三个输入框分别是用户名、密码、验证码以及一个登录按钮。页面代码代码如下所示。

XML"> 1 <div class="login_right">
 2     <div class="msg"><div id="result" class="result none"></div></div>
 3     <div class="login_form">
 4         <ul>
 5         <li><label>用户名:</label><input type="text" id="username" class="input-text" name="username" size="16"></li>
 6         <li><label>密 码:</label><input type="password"  class="input-text" name="password" size="16"></li>
 7         <li><label>验证码:</label><input name="verifycode" class="input-text"  class="inputbox" id="verifycode"  size="4" value="" maxlength="4" /><img src="{:url('/XDpnUDLrYIcpE1WYsybAUNNEVlZYOtjHZD.jpg')}" onclick="JavaScript:this.src='{:url('/XDpnUDLrYIcpE1WYsybAUNNEVlZYOtjHZD.jpg')}?tm='+Math.random();" class="checkcode" align="absmiddle"  title="重设" id="verifyImage"/></li>
 8         <li><label></label><input type="submit"  class="button" value="登录" /></li> 
 9         </ul>
10     </div>
11 </div>

上述页面代码的效果如图25-3所示。

图25-3登录界面
我们定义一个application\admin\validate\AdminValidate验证器类用于治理员登录场景时的验证。代码如下。

 1 namespace app\admin\validate;
 2 use think\Validate;
 3 
 4 class AdminValidate extends Validate
 5 {
 6     protected $rule = [
 7         ['username', 'require', '用户名不能为空'],
 8         ['password', 'require', '密码不能为空'],
 9         ['verifycode', 'require', '验证码不能为空']
10     ];
11 
12 }

上述验证器中,要求用户名、密码、验证码都不能为空。
在执行登录函数doLogin,实现如下所示。

 1 public function doLogin(){
 2     $username = Request::instance()->param('username');
 3     $password = Request::instance()->param('password');
 4     $verifycode = Request::instance()->param('verifycode');
 5 
 6     //验证规则验证
 7     $result = $this->validate(compact('username', 'password', "verifycode"), 'AdminValidate');
 8     if(true !== $result){
 9         $this->error($result);
10     }
11 
12     //检讨验证码
13     $verify = new Verify();
14     if (!$verify->check($verifycode)) {
15         $this->error('验证码失误');
16     }
17 
18     //检讨用户名
19     $hasUser = db('admin')->where('username', $username)->find();
20     if(empty($hasUser)){
21         $this->error('用户名或密码失误');
22     }
23 
24     //检讨密码
25     if(md5($password) != $hasUser['password']){
26         $this->error('用户名或密码失误!');
27     }
28     Session::set('username',$username);
29     $this->redirect('index/index');
30 }

执行登录时,首先接收用户提交的三个参数,然后调用Validate类先进行非空验证,接下来依次检测验证码、用户名、密码是否正确,其中密码使用md5算法加密,三个参数都输入正确之后,使用Session类将用户名写入session中做为登录状态推断依据,并跳转到主界面365体育备用网址。

------分隔线----------------------------

公布评论 (146人察看0条评论)
请自觉遵守互联网相关的政策法规,严禁公布色情、暴力、反动的言论。
用户名: 验证码: 点击我更换tb通宝娱乐下载 官网
最新评论