由于没有源码下载,我把我写的贴在此处,希望不清楚的小伙伴参考一下,如果有错误还望指正,Thx
captcha.php
<?php
session_start();
$image = imagecreatetruecolor(100,30);
$bgcolor = imagecolorallocate($image,255,255,255);
imagefill($image,0,0,$bgcolor);
/*for($i=0;$i<4;$i++){
$fontsize = 6;
$fontcolor = imagecolorallocate($image,rand(0,120),rand(0,120),rand(0,120));
$fontcontent = rand(0,9);
$x = ($i*100/4) + rand(5,10);
$y = rand(5,10);
imagestring($image,$fontsize,$x,$y,$fontcontent,$fontcolor);;
}*/
$captch_code = '';
for($i=0;$i<4;$i++){
$fontsize = 6;
$fontcolor = imagecolorallocate($image,rand(0,120),rand(0,120),rand(0,120));
$data = 'abcdefghigklmnopqrstuvwxyz1234567890';
$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
header("Content-type:text/html;charset=utf-8");
if(isset($_REQUEST['authcode'])){
session_start();
if(strtolower($_REQUEST['authcode'])==$_SESSION['authcode']){
echo '<p color="#0000CC">输入正确</p>';
}else{
echo '<p color="#CC0000">输入错误</p>';
}
exit;
}
?>
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>确认验证码</title>
</head>
<body>
<form method="post" action="./form.php">
<p>验证图片: <img src="./captcha.php?r=<?php echo rand();?>" border="1" width="100"></p>
<p>请输入图片中的内容:
<input type="text" name="authcode" value=""/>
</p>
<p><input type="submit" value="提交" style="padding: 6px 20px;"/></p>
</form>
</body>
</html>