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

开发技术 作者: 2024-08-18 06:35:01
这篇文章主要介绍了PHP验证码类文件及调用方式代码详解,需要的朋友可以参考下

代码如下所示:

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 图片验证实例