thinkphp验证码的实现(form、ajax实现验证)

5年以前  |  阅读数:381 次  |  编程语言:PHP 

两种验证码验证实现,一种直接在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="验证码" style="width: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 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="验证码" style="width: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验证码的实现(form、ajax使用验证),希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

 相关文章:
PHP分页显示制作详细讲解
SSH 登录失败:Host key verification failed
获取IMSI
将二进制数据转为16进制以便显示
获取IMEI
文件下载
贪吃蛇
双位运算符
PHP自定义函数获取搜索引擎来源关键字的方法
Java生成UUID
发送邮件
年的日历图
提取后缀名
在Zeus Web Server中安装PHP语言支持
让你成为最历害的git提交人
Yii2汉字转拼音类的实例代码
再谈PHP中单双引号的区别详解
指定应用ID以获取对应的应用名称
Python 2与Python 3版本和编码的对比
php封装的page分页类完整实例