(编辑:jimmy 日期: 2025/11/3 浏览:2)
本文实例讲述了PHP实现简单实用的验证码类。分享给大家供大家参考。具体如下:
<"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程序设计有所帮助。