首页 > 编程 > PHP > 正文

PHP实现简单实用的验证码类

2020-03-22 18:08:29
字体:
来源:转载
供稿:网友
* $image- config('宽度','高度','字符个数','验证码session索引');* $image- create();//这样就会向浏览器输出一张图片* //所有参数都可以省略,* 默认是:宽80 高20 字符数4 验证码session索引captcha_code* 第四个参数即把验证码存到$_SESSION['captcha_code']* 最简单使用示例:* $image=new Captcha();* $image- create();//这样就会向浏览器输出一张图片html' target='_blank'>class Captchaprivate $width=80,$height=20,$codenum=4;public $checkcode; //产生的验证码private $checkimage; //验证码图片 private $disturbColor = ''; //干扰像素private $session_flag='captcha_code';//存到session中的索引//尝试开始sessionfunction __construct(){ @session_start();* 参数:(宽度,高度,字符个数)function config($width='80',$height='20',$codenum='4',$session_flag='captcha_code') $this- width=$width; $this- height=$height; $this- codenum=$codenum; $this- session_flag=$session_flag;function create() //输出头 $this- outFileHeader(); //产生验证码 $this- createCode(); //产生图片 $this- createImage(); //设置干扰像素 $this- setDisturbColor(); //往图片上写验证码 $this- writeCheckCodeToImage(); imagepng($this- checkimage); imagedestroy($this- checkimage); $_SESSION[$this- session_flag]=$this- checkcode; * @brief 输出头private function outFileHeader() header ("Content-type: image/png"); * 产生验证码private function createCode() $this- checkcode = strtoupper(substr(md5(rand()),0,$this- codenum)); * 产生验证码图片private function createImage() $this- checkimage = @imagecreate($this- width,$this- height); $back = imagecolorallocate($this- checkimage,255,255,255); $border = imagecolorallocate($this- checkimage,0,0,0); imagefilledrectangle($this- checkimage,0,0,$this- width - 1,$this- height - 1,$back); // 白色底 imagerectangle($this- checkimage,0,0,$this- width - 1,$this- height - 1,$border); // 黑色边框 * 设置图片的干扰像素 private function setDisturbColor() for ($i=0;$i =200;$i++) $this- disturbColor = imagecolorallocate($this- checkimage, rand(0,255), rand(0,255), rand(0,255)); imagesetpixel($this- checkimage,rand(2,128),rand(2,38),$this- disturbColor); * 在验证码图片上逐个画上验证码private function writeCheckCodeToImage() for ($i=0;$i $this- codenum;$i++) $bg_color = imagecolorallocate ($this- checkimage, rand(0,255), rand(0,128), rand(0,255)); $x = floor($this- width/$this- codenum)*$i; $y = rand(0,$this- height-15); imagechar ($this- checkimage, rand(5,8), $x+5, $y, $this- checkcode[$i], $bg_color);function __destruct() unset($this- width,$this- height,$this- codenum,$this- session_flag);PHP教程

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表