加入收藏 | 设为首页 | 会员中心 | 我要投稿 核心网 (https://www.hxwgxz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程 > 正文

PHP验证码类文件及调用方式代码详解

发布时间:2021-03-06 06:45:05 所属栏目:编程 来源:网络整理
导读:代码如下所示: font = dirname(__FILE__).'/font/elephant.ttf

代码如下所示:

font = dirname(__FILE__).'/font/elephant.ttf';//注意字体路径要写对,否则显示不了图片 } //生成随机码 private function createCode() { $_len = strlen($this->charset)-1; for ($i=0;$i<$this->codelen;$i++) { $this->code .= $this->charset[mt_rand(0,$_len)]; } } //生成背景 private function createBg() { $this->img = imagecreatetruecolor($this->width,$this->height); $color = imagecolorallocate($this->img,mt_rand(157,255),255)); imagefilledrectangle($this->img,$this->height,$this->width,$color); } //生成文字 private function createFont() { $_x = $this->width / $this->codelen; for ($i=0;$i<$this->codelen;$i++) { $this->fontcolor = imagecolorallocate($this->img,mt_rand(0,156),156)); imagettftext($this->img,$this->fontsize,mt_rand(-30,30),$_x*$i+mt_rand(1,5),$this->height / 1.4,$this->fontcolor,$this->font,$this->code[$i]); } } //生成线条、雪花 private function createLine() { //线条 for ($i=0;$i<6;$i++) { $color = imagecolorallocate($this->img,156)); imageline($this->img,$this->width),$this->height),$color); } //雪花 for ($i=0;$i<100;$i++) { $color = imagecolorallocate($this->img,mt_rand(200,255)); imagestring($this->img,mt_rand(1,'*',$color); } } //输出 private function outPut() { header('Content-type:image/png'); imagepng($this->img); imagedestroy($this->img); } //对外生成 public function doimg() { $this->createBg(); $this->createCode(); $this->createLine(); $this->createFont(); $this->outPut(); } //获取验证码 public function getCode() { return strtolower($this->code); } }

使用方法:

1、先把验证码类保存为一个名为 ValidateCode.class.php 的文件;

2、新建一个名为 captcha.php 的文件进行调用该类;

3、引用到页面中,代码如下:

4、一个完整的验证页面,代码如下:

session 图片验证实例