一、新建captcha.php,写入以下代码:
<?php
/*--创建一个大小为 100*30 的验证码--*/
session_start();
$image = imagecreatetruecolor(100, 30);
$bgcolor = imagecolorallocate($image, 255, 255, 255);
imagefill($image, 0, 0, $bgcolor);
$captch_code = '';
for($i=0;$i<4;$i++) {
$fontsize = 6;
$fontcolor = imagecolorallocate($image, rand(0, 120), rand(0, 120),rand(0, 120));
$data = 'abcdefghijkmnpqrstuvwxy3456789';
$fontcontent = substr($data, rand(0, strlen($data)-1), 1);
$captch_code .= $fontcontent;
$x = ($i*100/4) + rand(5, 10);
$y = rand(5, 10);
imagestring($image, $fontsize, $x, $y, $fontcontent, $fontcolor);
}
$_SESSION['authcode'] = $captch_code;
//增加点干扰元素
for($i=0; $i<200;$i++) {
$pointcolor = imagecolorallocate($image, rand(50,200), rand(50,200), rand(50,200));
imagesetpixel($image, rand(1,99), rand(1,29), $pointcolor);
}
//增加线干扰元素
for($i=0;$i<3;$i++) {
$linecolor = imagecolorallocate($image, rand(80,220), rand(80,220), rand(80, 220));
imageline($image, rand(1,99), rand(1,29), rand(1,99), rand(1,29), $linecolor);
}
header('content-type:image/png');
imagepng($image);
imagedestroy($image);
?>
二、新建form.php,写入以下代码:
<?php
if(isset($_REQUEST['authcode'])) {
session_start();
if(strtolower($_REQUEST['authcode']) == $_SESSION['authcode']) {
echo "输入正确!";
} else {
echo "输入错误!";
}
exit();
}
?>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="content-type" content="text/html;charset=utf-8" />
<title>确认验证码</title>
</head>
<body>
<form method="post" action="./form.php">
<p>验证码图片:
<img id="captcha_img" border="1" src="./captcha.php?r=<?php echo rand();?>" width=100 height=30>
<a href="javascript:void(0)" onClick="document.getElementById('captcha_img').src='./captcha.php?r='+Math.random()">换一个?</a>
</p>
<p>请输入图片中的内容:<input type="text" name="authcode" value="" /></p>
<p><input type="submit" value="提交" style="padding:6px 20px;"></p>
</form>
</body>
</html>
了解更多,请查看 http://www.imooc.com/learn/115。