博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
php原生自定义验证码,5分钟搞定你的问题
阅读量:5788 次
发布时间:2019-06-18

本文共 1748 字,大约阅读时间需要 5 分钟。

当然现在很多php的框架里面自带了很多很多验证码,我的这个验证码,也是当初刚刚入行的时候学习模仿的。现在照搬出来,希望对刚入门的朋友有所帮助。

************************************************************************************************************

length = $length; $this->font = $font;}/*** @intro 生成随机字符串* * @param * * @author 十月桂花香十里* * @return */private function generalCode(){ $char_array = array_merge(range('A','Z'),range(0,9)); $index = array_rand($char_array,$this->length); shuffle($index); //拼接验证码字符串 $str = ''; foreach($index as $i){ $str .= $char_array[$i]; } //将生成的随机字符串保存到会话中 session_start(); $_SESSION['code'] = $str; return $str;}/*** @intro 生成验证码* * @param * * @author 十月桂花香十里* * @return */public function generalCaptcha(){ $str = $this->generalCode(); //打开图片路径 $bg ='http://www.xxx.com/images/captcha/captcha_bg'.rand(1,5).'.jpg'; //这里引用你图片的存放的位置,记得注意不要被盗链了  $img = imagecreatefromjpeg($bg);  //定义字符串颜色,黑白概率为50%  $color = imagecolorallocate($img,0,0,0);  if(rand(1,2)==2){   $color=imagecolorallocate($img,255,255,255);  }  $x=(imagesx($img)-imagefontwidth($this->font)*strlen($str))/2;  $y=(imagesy($img)-imagefontheight($this->font))/2;  imagestring($img,$this->font,$x,$y,$str,$color);  //浏览器输出  header('content-type:image/png');  imagepng($img);  imagedestroy($img);}/*** @intro 验证输入的验证码是否正确* * @param $code string 用户输入的验证码 * * @author 十月桂花香十里* * @return bool 成功返回true,失败返回false */public function checkCode($code){ return strtolower($code) == strtolower($_SESSION['code'])?true:false;} }

 

*******************************************************************

封装好的,直接复制就行,改一下背景图片地址就ok了,至于背景图片,我云盘分享一下就行。

(链接:http://pan.baidu.com/s/1i47wWKl 密码:sfvg)

转载于:https://www.cnblogs.com/qwgshare/p/5946130.html

你可能感兴趣的文章
JAVA的优势就是劣势啊!
查看>>
ELK实战之logstash部署及基本语法
查看>>
帧中继环境下ospf的使用(点到点模式)
查看>>
BeanShell变量和方法的作用域
查看>>
LINUX下防恶意扫描软件PortSentry
查看>>
由数据库对sql的执行说JDBC的Statement和PreparedStatement
查看>>
springmvc+swagger2
查看>>
软件评测-信息安全-应用安全-资源控制-用户登录限制(上)
查看>>
我的友情链接
查看>>
Java Web Application 自架构 一 注解化配置
查看>>
如何 debug Proxy.pac文件
查看>>
Python 学习笔记 - 面向对象(特殊成员)
查看>>
Kubernetes 1.11 手动安装并启用ipvs
查看>>
Puppet 配置管理工具安装
查看>>
Bug多,也别乱来,别被Bug主导了开发
查看>>
sed 替换基础使用
查看>>
高性能的MySQL(5)创建高性能的索引一B-Tree索引
查看>>
oracle备份与恢复--rman
查看>>
图片变形的抗锯齿处理方法
查看>>
Effective C++ Item 32 确保你的 public 继承模子里出来 is-a 关联
查看>>