PHP实现验证码功能
首先打开GD库
找到配置文件php.ini,打开内容,找到:
;extension=php_gd2.dll把最前面的分号“;”去掉,再保存即可,如果本来就没有分号,那就是已经开启了。
生成验证码代码:
<?php
session_start();
$img = imagecreatetruecolor(100, 35);
$black = imagecolorallocate($img, 0x00, 0x00, 0x00);
$green = imagecolorallocate($img, 0x00, 0xFF, 0x00);
$white = imagecolorallocate($img, 0xFF, 0xFF, 0xFF);
imagefill($img,0,0,$white);
//生成随机的验证码
$code = '';
for($i = 0; $i < 4; $i++) {
$code .= rand(0, 9);
}
$_SESSION['rand'] = $code; //存储验证码
imagestring($img, 30, 28, 10, $code, $black);
//加入噪点干扰
for($i=0;$i<200;$i++) {
imagesetpixel($img, rand(0, 100) , rand(0, 100) , $black);
imagesetpixel($img, rand(0, 100) , rand(0, 100) , $green);
}
//输出验证码
header("content-type: image/png");
imagepng($img);
imagedestroy($img);
?>
用session存储生成的4位随机数字
在html文件中调用验证码代码:
<div id="text11"><img name="validate" οnclick="validate.src+='?' + Math.random();"
src="verification.php" alt="点击刷新">//<span style="font-family: Simsun;">verification.php是</span><span style="font-family: Simsun;">生成验证码的文件</span>
</div>
在php文件中首先要开启session然后才能验证:
session_start();
//用于核对验证码
if(($_SESSION['rand'])!=($verification )){
echo "<script>alert('验证码错误!重新填写');window.location.href='XXX.html'</script>";
//判断验证码是否填写正确
}
就可以实现验证码功能。