zoukankan      html  css  js  c++  java
  • thinkphp验证码的实现

    两种验证码验证实现,一种直接在form表单提交按钮实现验证,一种使用ajax传递参数实现验证:

    1、直接在form表单提交按钮实现验证,在控制器VerifyController.class.php中写入如下代码:

    复制代码
    namespace HomeController;
    use ThinkController;
    class VerifyController extends Controller {
        public function index() {
            $this->display();
        }
        public function checkLogin() {
            $verify=new ThinkVerify();
            $code=I('post.verify');//表单验证码
            if($verify->check($code)){
                $this->success('验证码正确');
            }else{
                $this->error('验证码错误');
            }
        }
        public function verify()
        {
            // 实例化Verify对象
            $verify = new ThinkVerify();
    
            // 配置验证码参数
            $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="验证码" style="100px;" />
                    <span style="right:120px;"></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 HomeController;
    use ThinkController;
    class VerifyController extends Controller {
        public function index() {
            $this->display();
        }
        public function checkLogin() {
            $verify=new ThinkVerify();
            $code=$_POST['code'];//ajax验证码获取
            if($verify->check($code)){
                $this->ajaxReturn(1);
            }else{
                $this->ajaxReturn(0);
            }
        }
        public function verify()
        {
            // 实例化Verify对象
            $verify = new ThinkVerify();
    
            // 配置验证码参数
            $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="验证码" style="100px;" />
                    <span style="right:120px;"></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',
        ),
    );
  • 相关阅读:
    thinkphp使用ajax
    thinkphp修改和删除数据
    thinkphp添加数据
    thinkphp中的查询语句
    thinkphp模型
    空控制器的处理
    thinkphp3.2.3版本文件目录及作用
    12月18日Smarty文件缓存
    12月15日smarty模板基本语法
    12月13日上午Smarty模版原理
  • 原文地址:https://www.cnblogs.com/pcyy/p/5769530.html
Copyright © 2011-2022 走看看