怎么在thinkPHP项目中实现一个验证码功能

  介绍

这篇文章给大家介绍怎么在thinkPHP项目中实现一个验证码功能,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

1。php端生成验证码函数

public  function 验证(){   ,,,//,验证码   ,,,进口(“@.Util.Image");   ,,,的形象:buildImageVerify (4 1 & # 39; png # 39;, 40岁,20日& # 39;验证# 39;);   }/* *   *,生成图像验证码   *,@static   * @access 公共   *,@param  string  length 美元;位数   *,@param  string  mode 美元;类型   *,@param  string  type 美元;图像格式   *,@param  string  width 美元;宽度   *,@param  string  height 美元;高度   *,@return 字符串   */static  function  buildImageVerify(长度=4美元,美元模式=1,$ type=& # 39; png # 39;,, $宽度=48岁,身高=22美元,美元verifyName=& # 39;验证# 39;),{   ,,,进口(& # 39;ORG.Util.String& # 39;);   ,,,randval 美元;=,字符串:randString(长度、美元,美元模式);   ,,,会话(verifyName美元,md5 (randval美元));   ,,,width 美元;=,(10,length 美元;*,+,10),祝辞,width 美元;?,length 美元;*,10,+,10,:,美元宽度;   ,,,if  (type 美元;!=,& # 39;gif # 39;,,,, function_exists (& # 39; imagecreatetruecolor& # 39;)), {   ,,,,,我美元=,imagecreatetruecolor($宽度,高度美元);   ,,,},{else    ,,,,,我美元=,imagecreate($宽度,高度美元);   ,,,}   ,,,r 美元;=,数组(225,,255,,255,,223);   ,,,g 美元;=,数组(225,,236,,237,,255);   ,,,b 美元;=,数组(225,,236,,166,,125);   ,,,key 美元;=,mt_rand (0,, 3);   backColor 美元,,,,=,imagecolorallocate (im美元,$ r ($ key), g(例子)美元,美元,美元b [$ key]);,,//背景色(随机)   ,,,borderColor 美元;=,imagecolorallocate (im美元,,100,,100,,100),,//边框色   ,,,imagefilledrectangle (im美元,,0,0,,width 美元;作用;1,$ height 作用;1,背景色美元);   ,,,imagerectangle (im美元,,0,0,,width 美元;作用;1,$ height 作用;1,borderColor美元);   ,,,stringColor 美元;=,imagecolorallocate (im美元,mt_rand (0, 200),, mt_rand (0, 120),, mt_rand (0, 120));   ,,,//,干扰   ,,,for ($小姐:=,0;,美元小姐:& lt;, 10;,我+ +美元),{   ,,,,,imagearc (im美元,mt_rand(美元-10,宽度),mt_rand(身高,-10美元),mt_rand (30, 300), mt_rand(20, 200), 55岁,44岁,stringColor美元);   ,,,}   ,,,for ($小姐:=,0;,美元小姐:& lt;, 25;,我+ +美元),{   ,,,,,imagesetpixel (im美元,mt_rand(0,宽度美元),,mt_rand(0,高度美元),stringColor美元);   ,,,}   ,,,for ($小姐:=,0;,美元小姐:& lt;,长度;美元,美元我+ +),{   ,,,,,imagestring (im美元,5日,美元小姐:*,10,+,5日,mt_rand(1, 8),美元randval{$我},,stringColor美元);   ,,,}   ,,,的形象:输出(im美元,,类型);   }

生成图片的同时,传入到会话中。

2。页面端

& lt; img  id=皏erifyImg", https://www.yisu.com/zixun/src=" {sh: U(“代理/登录/验证”)}“onClick=" changeVerify () " title=暗慊魉⑿卵橹ぢ?/>

直接src中调用。

点击触发改变。

function  changeVerify () {=,verifyURL “{sh: U(& # 39;代理/登录/验证# 39;)}“;   ,$ (“# verifyImg") .attr (“src" verifyURL);   ,return 假;   }

3。后台验证,对比字后段与会话中的验证码是否一致。

如果($ _SESSION[& # 39;验证# 39;],!=,md5 ($ _POST[& # 39;验证# 39;])),{   这个美元才能→错误(& # 39;验证码错误! & # 39;);   }

关于怎么在thinkPHP项目中实现一个验证码功能就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看的到。

怎么在thinkPHP项目中实现一个验证码功能