宝哥软件园

thinkphp3.2点击刷新生成验证码

编辑:宝哥软件园 来源:互联网 时间:2021-09-17

在介绍thinkphp3.2验证码的用法之前,我们先详细介绍一下thinkphp验证码,具体内容如下。

ThinkPHP内置了对验证码的支持,可以直接使用。要使用验证码,您需要导入组织。图像类库和ORG。扩展类库中的字符串类库。验证码方法我们向模块类添加一个验证方法来显示验证码。最简单的例子是:

函数verify(){//导入Image类库导入(' ORG。util . Image’);image : buildimageverify();}import方法是导入内置于ThinkPHP中的类库和文件的方法。上例中导入的文件是ThinkPHP系统目录下的Lib/ORG/Util/Image.class.php文件。如果已将图像类库复制到当前项目,如Lib/ORG,则可以使用:

导入(' @ . util . image ');导入方法是ThinkPHP内置的类库和文件导入方法。上例中导入的文件是ThinkPHP系统目录下的Lib/ORG/Util/Image.class.php文件。要访问验证码,可以在浏览器中直接访问验证码方法,判断验证码是否可以正常显示:http://127 . 0 . 0 . 1/index . PHP/public/verify。如果一切正常,验证码显示如下:

使用表单中的验证码并使用表单页面中的验证码,该验证码由html img标记调用:

输入类型=' text ' name=' verify ' img id=' verify img ' src=' http :-article-verify ' onclick=' change verify()' title='点击刷新验证码'/src属性值是验证码方法的访问地址,根据实际情况有所不同。验证码刷新当点击验证码图片时,会触发JavaScript changeVerify()函数重新读取验证码,从而实现验证码刷新。该函数参考如下:

脚本语言='JavaScript '函数change verify(){ var time now=new Date()。getTime();document . getelementbyid(' verifyImg ')。src='-Article/verify/' time now;}/脚本验证码调用验证码验证时,buildImageVerify会记录这个验证码的MD5信息。在表单验证操作中,通过以下方式检查验证码是否正确:

if($_SESSION['验证']!=MD5($ _ post[' verify ']){ $ this-error('错误的验证码!'。);} $ _ SESSION[' verify ']中的验证名称是buildageverify方法的默认会话注册名称,有关详细信息,请参见buildageverify语法。上面的例子演示了ThinkPHP验证代码的最简单用法。上例中的验证码为4位数字。如果您想使用更多样式的验证码和中文验证码,请参考本节剩余部分:《ThinkPHP 使用不同风格及中文的验证码》。验证码不显示的原因如下。发现无法显示验证码。可能的原因如下:1 .PHP是否安装了GD库支持。2.输出前是否有输出(尤其是UTF8的BOM表头信息输出)。3.图像类库是否正确导入。4.如果是表单页面,请检查验证码显示方法调用是否正确。

下面介绍如何生成thinkphp3.2验证码并点击刷新验证码。详情如下。

1.实例化生成验证码的类(这个方法被放入IndexController以便于访问)。

/* * * * *验证码生成*/公共函数verify _ c(){ $ verify=new think verify();$ Verify-font size=18;$ Verify-长度=4;$ Verify-useNoise=false;$ Verify-codeSet=' 0123456789 ';$ Verify-imageW=130;$ Verify-imageH=50;//$ Verify-expire=600;$ Verify-entry();} 2.前台需要生成指向验证码图片的src属性。

p class=' top15 captcha ' id=' captcha-container '输入名称=' verify '宽度=' 50% '高度=' 50' class=' captcha-text '占位符='验证码'类型='text' img宽度。=' 30% ' class=' left 15 ' height=' 50 ' alt='验证码' src=' http 3360 { : u(' home/index/verify _ c ',array ())}' title='点击刷新'/p3。写完以上。下面是点击验证码图片,刷新新的验证码图片(通过jquery修改图片的src属性,请求的处理功能是一样的,只是请求后增加了一个随机数来区分前一张图片的请求)。

//验证码生成var captcha _ img=$(' # captcha-container ')。find(' img ')var verify img=captcha _ img . attr(' src ');Captcha_img.attr('title ','点击刷新');captcha _ img . click(function(){ if(verifyimg . indexof('?))0){ $(this)。attr('src ',verifyimg ' random=' math . random());}else{ $(this)。attr('src ',verifyimg.replace(/?*$/,'') '?'math . random());} });4.验证验证码输入是否正确。在公共目录中为function.php添加全局功能。

/* * *验证码检查*/函数check _ verify ($ code,$ id=' '){ $ verify=new think verify();返回$verify-check($code,$ id);} B .在表单提交的控制器对应的处理方式中添加校验码。

//检查验证码$verify=I('param.verify ',' ');if(!check _ verify($ verify)){ $ this-error('亲爱的,验证码不对!',$this-site_url,9);}只需使用tp3.2验证码。补充:我在写的时候,把Step B of Four放到一个ajax里面进行验证,返回了一个验证结果。然后根据返回的结果确定是否提交表单。然而,在验证码通过第一次验证后,第二次验证是不可能的。到目前为止,我们还没有找到原因。

这就是本文的全部内容,文末还有一个小问题。希望大家能想出解决的办法,希望这篇文章对大家的学习有所帮助。

更多资讯
游戏推荐
更多+