介绍
这篇文章给大家介绍怎么在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项目中实现一个验证码功能就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看的到。