程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> thinkphp驗證碼的實現,thinkphp驗證碼

thinkphp驗證碼的實現,thinkphp驗證碼

編輯:關於PHP編程

thinkphp驗證碼的實現,thinkphp驗證碼


兩種驗證碼驗證實現,一種直接在form表單提交按鈕實現驗證,一種使用ajax傳遞參數實現驗證:

1、直接在form表單提交按鈕實現驗證,在控制器VerifyController.class.php中寫入如下代碼:

namespace Home\Controller;
use Think\Controller;
class VerifyController extends Controller {
    public function index() {
        $this->display();
    }
    public function checkLogin() {
        $verify=new \Think\Verify();
        $code=I('post.verify');//表單驗證碼
        if($verify->check($code)){
            $this->success('驗證碼正確');
        }else{
            $this->error('驗證碼錯誤');
        }
    }
    public function verify()
    {
        // 實例化Verify對象
        $verify = new \Think\Verify();

        // 配置驗證碼參數
        $verify->fontSize = 14;     // 驗證碼字體大小
        $verify->length = 4;        // 驗證碼位數
        $verify->imageH = 34;       // 驗證碼高度
        $verify->useImgBg = true;   // 開啟驗證碼背景
        $verify->useNoise = false;  // 關閉驗證碼干擾雜點
        $verify->entry();
    }
}

在視圖Verify/index.html中的代碼如下:

<!DOCTYPE html>
<html>
    <head>
        <title></title>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    </head>
    <body>
        <form action="{:U('verify/checkLogin')}" method="post">
            <div class="form-group has-feedback">
                <input type="text" name="verify" id="verify" placeholder="驗證碼"  />
                <span ></span>
                <img class="verify" src="{:U(verify)}" alt="驗證碼" onClick="this.src=this.src+'?'+Math.random()" />
            </div>
                <div class="col-xs-4">
                    <button type="submit" >驗證</button>
                </div>
        </form>
    </body>
</html>

2、使用ajax傳遞參數實現驗證,在控制器VerifyController.class.php中的代碼如下:

namespace Home\Controller;
use Think\Controller;
class VerifyController extends Controller {
    public function index() {
        $this->display();
    }
    public function checkLogin() {
        $verify=new \Think\Verify();
        $code=$_POST['code'];//ajax驗證碼獲取
        if($verify->check($code)){
            $this->ajaxReturn(1);
        }else{
            $this->ajaxReturn(0);
        }
    }
    public function verify()
    {
        // 實例化Verify對象
        $verify = new \Think\Verify();

        // 配置驗證碼參數
        $verify->fontSize = 14;     // 驗證碼字體大小
        $verify->length = 4;        // 驗證碼位數
        $verify->imageH = 34;       // 驗證碼高度
        $verify->useImgBg = true;   // 開啟驗證碼背景
        $verify->useNoise = false;  // 關閉驗證碼干擾雜點
        $verify->entry();
    }
}

視圖Verify/index.html中的代碼如下:

<!DOCTYPE html>
<html>
    <head>
        <title></title>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <script src="__JS__/jquery-2.1.0.min.js" ></script>
    </head>
    <body>
        <form action="{:U('verify/checkLogin')}" method="post">
            <div class="form-group has-feedback">
                <input type="text" name="verify" id="verify" placeholder="驗證碼"  />
                <span ></span>
                <img class="verify" src="{:U(verify)}" alt="驗證碼" onClick="this.src=this.src+'?'+Math.random()" />
            </div>
                <div class="col-xs-4">
                    <button type="button" id="ver">驗證</button>
                </div>
        </form>
        <script>
            $(document).ready(function(){
                /*ajax驗證碼*/
                $("#ver").click(function(){
                   var code=$("#verify").val();//獲取輸入驗證碼
                   var url=$('form').attr('action');//獲取表單action的值
                   $.ajax({
                       type:"post",
                       url:url,
                       data:{"code":code},
                       error:function(request){
                           alert("ajax錯誤");
                       },
                       success:function(data){
                           if(data){
                               alert("正確")
                           }else{
                               alert('錯誤')
                           }
                       }
                   });
                });
            });
        </script>
    </body>
</html>

在第2種方法,不要忘記下載jquery.min.js文件下載地址:http://www.jq22.com/jquery-info122

在配置文件Common/conf/config.php中配置地址:

return array(  
    /*地址替換*/
    'TMPL_PARSE_STRING'=>array(  
        '__JS__'=>__ROOT__.'/Public/JS',
    ),
);

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved