A-A+

thinkphp 自带验证码的简单使用

2019年10月07日 PHP开源系统 评论 2 条 阅读 0 views 次

在TP的项目中要加一个验证码的验证,TP自带有验证码的功能,我们仅需要调用一下就可以了,不用自己去写一大堆的代码,我们直接在C层生成就可以了,当然放在 D 层也是可以的,代码不多,我就直接放在 C 控制器层了,如下代码:

  1. /** 
  2.  * 获取验证码 
  3.  */  
  4. public function get_verify(){  
  5.     ob_clean();  
  6.     $Verify = new \Think\Verify();  
  7.     $Verify->length   = 4;  
  8.     $Verify->codeSet = '0123456789';  
  9.     $Verify->useCurve = false;  
  10.     $Verify->useNoise = false;  
  11.     $Verify->fontSize = 40;  
  12.     $Verify->expire = 60;  
  13.     return $Verify->entry();  
  14. }  

关于 ob_clean(); 主要是为了防止验证码乱码和输出不显示的问题,关于配置文件,直接在代码里面配置就可以了,如下:

  1. $Verify->length   = 4;  
  2. $Verify->codeSet = '0123456789';  
  3. $Verify->useCurve = false;  
  4. $Verify->useNoise = false;  
  5. $Verify->fontSize = 40;  
  6. $Verify->expire = 60;  

可以参考TP官网进行配置,设置好之后,最后进行 return 返回即可,在模板层调用的代码如下:

  1. <input type="text" name="txyzm" placeholder="请填写验证码"></label><img onclick="this.src='{:U('Home/User/get_verify')}?'+Math.random()" src="{:U('Home/User/get_verify')}"><text>点击图形验证码刷新</text>  

其中 {:U('Home/User/get_verify')} 是 C 控制层中的代码。如果要更换验证码,只需要点击验证码图形就可以了,在模板层填写验证码,验证的控制端就更容易了,如下:

  1. //验证图片验证码  
  2. $txyzm = $data['txyzm'];  
  3. if(emptyempty($txyzm)) \Helper_Tool::stop(-1, '图形验证码不能为空');  
  4.   
  5. $verify = new \Think\Verify();  
  6. if(!$verify->check($txyzm)) \Helper_Tool::stop(-2, '图形验证码错误');  

两层的验证,一个验证码不能为空,一个验证图形码是否正确,OK,到此 TP 验证码完成。

我这里写的比较笼统了,因为我做的项目偶尔用一下,不会大用,如果是常用的话,就需要将 TP 图形验证码的配置进行合理的封装。

标签:

2 条留言  访客:2 条  博主:0 条

  1. 两对半

    目前看不懂^-^,用的什么语言写的?

    • smiling

      用的是PHP语言

给我留言