驗證碼LOGIN

驗證碼

登入完成還差一步驗證碼,驗證碼能有效的防止惡意登入。

驗證碼

<!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();
    }
}

在會員的模型層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,'');
    }


}


下一節
<?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,''); } }
章節課件