网站制作学习网PHP→正文:PHP验证码2
字体:

PHP验证码2

PHP 2009/9/27 10:03:38  点击:不统计

查看效果:PHP验证码2
<? session_start();
$glbVerifySeed = "1234567890abcdefghigklmnopqrstuvwxyz";
main();
function main() {
$verifyCode = getRandomCode();
$_SESSION["verifyCode"] = $verifyCode;
$imgWidth = $_REQUEST["width"];
$imgHeight = $_REQUEST["height"];
$imgFont = $_REQUEST["font"];
if($imgWidth == "") $imgWidth = 80;
if($imgHeight == "") $imgHeight = 18;
if($imgFont == "") $imgFont = 6;
doOutputImg($verifyCode, $imgWidth, $imgHeight, $imgFont);
}
function getRandomCode($length=6) {
global $glbVerifySeed;

$bgnIdx = 0;
$endIdx = strlen($glbVerifySeed)-1;

$code = "";
for($i=0; $i<$length; $i++) {
$curPos = rand($bgnIdx, $endIdx);
$code .= substr($glbVerifySeed, $curPos, 1);
}
return $code;
}

function doOutputImg($string, $imgWidth, $imgHeight, $imgFont,
$imgFgColorArr=array(0,0,0), $imgBgColorArr=array(255,255,255)) {
$image = imagecreatetruecolor($imgWidth, $imgHeight);
$backColor = imagecolorallocate($image, 255, 255, 255);
$borderColor = imagecolorallocate($image, 0, 0, 0);
imagefilledrectangle($image, 0, 0, $imgWidth - 1, $imgHeight - 1, $backColor);
imagerectangle($image, 0, 0, $imgWidth - 1, $imgHeight - 1, $borderColor);

$imgFgColor = imagecolorallocate ($image, $imgFgColorArr[0], $imgFgColorArr[1], $imgFgColorArr[2]);
doDrawStr($image, $string, $imgFgColor, $imgFont);
doPollute($image, 64);

header('Content-type: image/png');
imagepng($image);
imagedestroy($image);
}
function doDrawStr($image, $string, $color, $imgFont) {
$imgWidth = imagesx($image);
$imgHeight = imagesy($image);

$count = strlen($string);
$xpace = ($imgWidth/$count);

$x = ($xpace-6)/2;
$y = ($imgHeight/2-8);
for ($p = 0; $p<$count;  $p ++) {
$xoff = rand(-2, +2);
$yoff = rand(-2, +2);
$curChar = substr($string, $p, 1);
imagestring($image, $imgFont, $x+$xoff, $y+$yoff, $curChar, $color);
$x += $xpace;
}

return 0;
}
function doPollute($image, $times) {  
$imgWidth = imagesx($image);
$imgHeight = imagesy($image);
for($j=0; $j<$times; $j++) {
$x = rand(0, $imgWidth);
$y = rand(0, $imgHeight);
$color = imagecolorallocate($image, rand(0,255), rand(0,255), rand(0,255));
imagesetpixel($image, $x, $y, $color);
}
}
?>
 

·上一篇:PHP验证码 >>    ·下一篇:PHP验证码3 >>
推荐文章
最新文章