要求:如图,点击提交判断输入的验证码是否正确,点击验证码图片可以更换验证码
代码:
静态显示:
<load href="__PUBLIC__/JS/jquery-1.11.2.min.js" />//引入JS文件
<body> <form action="__ACTION__" method="post"> <input type="text" name="yzm"/> <input type="submit" value="提交" /> <img id="yzm" src="__CONTROLLER__/Yzm" /> <!--<img src="__CONTROLLER__/Yzm1" />--> </form> </body> </html> <script type="text/x-javascript"> $(document).ready(function(e) { $("#yzm").click(function(){ //重新访问该方法 var sj=Math.random(); $(this).attr("src","__CONTROLLER__/Yzm/"+sj);//注意传随机数,因为有的浏览器默认生成缓存,直接访问缓存。 }) }); </script>
后台逻辑:
<?php namespace Home\Controller; use Think\Controller; class YzmController extends Controller{ function Yzm(){ //设置验证码 $config=array( //静态验证 "fontsize"=>30, "length"=>3, "expire"=>4, 'useNoise'=>false, "fontttf"=>"5.ttf" ); $Verify = new \Think\Verify($config); $Verify->useImgBg = true;//动态验证 $Verify->useZh = true; //$Verify->codeSet = '012345abcd'; $Verify->zhSet = '们以我到他会作时要动国产的一是工就年阶义发成部民可出能方进在了不和有大这'; $Verify->entry(1);//验证码1 } //同一个页面多个验证码可以加标识 function Yzm1(){ $Verify = new \Think\Verify(); $Verify->entry(2);//验证码2 } function xianshi(){ //一个方法两个逻辑 if(empty($_POST["yzm"])) { //显示 $this->display(); } else { //判断输入的验证码是否正确 $yzm=$_POST["yzm"]; $Verify=new \Think\Verify(); $yzm=$Verify->check($yzm,1); if($yzm==true) { echo "验证通过"; } else { echo "验证失败"; } } } }
生成的验证码信息会保存到session中,包含的数据有:
array('verify_code'=>'当前验证码的值','verify_time'=>'验证码生成的时间戳')
验证码参数:
No Excuse~