Le code de véri...LOGIN

Le code de vérification

Il reste encore une étape avant que la connexion soit complétée avec un code de vérification. Le code de vérification peut empêcher efficacement les connexions malveillantes.

Code de vérification

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><!--Head--><head>
    <meta charset="utf-8">
    <title>PHP中文网:交流群374224296</title>
    <meta name="description" content="login page">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <!--Basic Styles-->
    <link href="__PUBLIC__/style/bootstrap.css" rel="stylesheet">
    <link href="__PUBLIC__/style/font-awesome.css" rel="stylesheet">
    <!--Beyond styles-->
    <link id="beyond-link" href="__PUBLIC__/style/beyond.css" rel="stylesheet">
    <link href="__PUBLIC__/style/demo.css" rel="stylesheet">
    <link href="__PUBLIC__/style/animate.css" rel="stylesheet">
</head>
<!--Head Ends-->
<!--Body-->

<body>
    <div class="login-container animated fadeInDown">
        <form action="" method="post">
            <div class="loginbox bg-white">
                <div class="loginbox-title">登录</div>
                <div class="loginbox-textbox">
                    <input value="admin" class="form-control" placeholder="username" name="username" type="text">
                </div>
                <div class="loginbox-textbox">
                    <input class="form-control" placeholder="password" name="password" type="password">
                </div>
                <div class="loginbox-textbox">
                    <input  class="form-control" style="width:120px; height:50px; float:left;" placeholder="验证码" name="verify" type="text">
                    <img src="__CONTROLLER__/verify" style="cursor:pointer;"  height="50" width="100" border="0" >
                </div>


                <div class="loginbox-submit">
                    <input class="btn btn-primary btn-block" value="Login" type="submit">
                </div>
            </div>
                <div class="logobox">
                    <p class="text-center">PHP中文网:交流群374224296</p>
                </div>
        </form>
    </div>
    <!--Basic Scripts-->
    <script src="__PUBLIC__/style/jquery.js"></script>
    <script src="__PUBLIC__/style/bootstrap.js"></script>
    <script src="__PUBLIC__/style/jquery_002.js"></script>
    <!--Beyond Scripts-->
    <script src="__PUBLIC__/style/beyond.js"></script>




</body><!--Body Ends--></html>

LoginController.class.php

<?php
namespace Admin\Controller;
use Think\Controller;
class LoginController extends Controller
{
    public function index(){
        $admin=D('admin');
        if(IS_POST){
            if($admin->create($_POST,4)){
                if($admin->login()){
                    $this->success('登录成功,跳转中...',U('Index/index'));
                }else{
                    $this->error('用户名或者密码错误!');
                }
            }else{
                $this->error($admin->getError());
            }
            return;
        }

        $this->display();
    }

    public function verify(){
        $Verify = new \Think\Verify();
        $Verify->length=4;
        $Verify->entry();
    }
}

Dans la couche de modèle du membre AdminModel.class.php

<?php
namespace Admin\Model;
use Think\Model;
class AdminModel extends Model {

    protected $_validate = array(
      array('username','require','管理员名称不得为空!',1),
      array('password','require','管理员密码不得为空!',1,regex,1),
      array('username','','管理员名称已经存在!',1,'unique',1),
      array('username','','管理员名称已经存在!',1,'unique',2),
        array('verify','verify','验证码不正确!',1,'callback',4),

    );

    public function login(){
        $password=$this->password;
        $info=$this->where("username='$this->username'")->find();
        if ($info){
            if($info['password']=md5($password)){
                return true;
            }else{
                return false;
            }
        }else{
            return false;
        }

    }
    public function verify($code){
        $verify =new \Think\Verify();
        return $verify->check($code,'');
    }


}


section suivante
<?php namespace Admin\Model; use Think\Model; class AdminModel extends Model { protected $_validate = array( array('username','require','管理员名称不得为空!',1), array('password','require','管理员密码不得为空!',1,regex,1), array('username','','管理员名称已经存在!',1,'unique',1), array('username','','管理员名称已经存在!',1,'unique',2), array('verify','verify','验证码不正确!',1,'callback',4), ); public function login(){ $password=$this->password; $info=$this->where("username='$this->username'")->find(); if ($info){ if($info['password']=md5($password)){ return true; }else{ return false; } }else{ return false; } } public function verify($code){ $verify =new \Think\Verify(); return $verify->check($code,''); } }
soumettreRéinitialiser le code
chapitredidacticiel