说明:
使用PHP的GD库生成图片验证码,可设置字符长度,程序自动重新设置图片总体宽度、含杂点、背景和文字颜色随机更换。不会出现容易产生混淆的“1、l、I、o、O、0”。
效果:
PHP图片验证码演示图
用法:
前台:
οnclick="this.src='verifyCode.img.php?'+Math.random();" />
后台:
session_start();
if ($_POST['verifyCode'] == $_SESSION['verify']){
echo '验证码正确';
}else{
echo '验证码错误';
}
?>
注:“verifyCode”来自“”,“verify”来自“verifyCode.img.php”中的“$verifySessionName”。
代码:
session_start();
$verifySessionName = 'verify'; // session名称,用于后台对比验证
$verifyTextLength = 4; // 显示的验证码图片上的字符数
$rand = '';
for ($i = 0; $i < $verifyTextLength; $i++) {
$rand .= dechex(rand(2, 15));
}
$rand = '';
for ($i = 0; $i < $verifyTextLength; $i++) {
$rand .= dechex(rand(2, 15));
}
$rand = strtoupper($rand);
$_SESSION[$verifySessionName] = $rand;
$img = imagecreatetruecolor($verifyTextLength * 10, 20);
$bg = imagecolorallocate($img, rand(0, 150), rand(0, 150), rand(0, 150));
imagefill($img, 0, 0, $bg);
$fg = imagecolorallocate($img, rand(155, 255), rand(155, 255), rand(155, 255));
imagestring($img, 6, 2, 2, $rand, $fg);
for ($i = 0; $i < 200; $i++) { //加入干扰象素
$randcolor = ImageColorallocate($img, rand(0, 255), rand(0, 255), rand(0, 255));
imagesetpixel($img, rand() % 60, rand() % 40, $randcolor);
}
header('content-type:image/gif');
imagegif($img);
?>
<完>