在前两个的基础下把原来生成的字符和汉字替换为图片,然后用一个数组保存相应图片的描述,让该数组和图片保持一致的下标,下面来看一下具体实现的代码:
首先还是captcha.php用来保存生成图片的代码:
<?php
session_start();
$table=array(
'pic1'=>'鱼',
'pic2'=>'狗',
'pic3'=>'鸟',
'pic4'=>'猫'
);
$index=rand(1, 4);
$value=$table['pic'.$index];
$_SESSION['authcode']=$value;
$filename=dirname(__FILE__).'\\pic'.$index.'.jpg';
$content=file_get_contents($filename);
header('content-type:image/jpg');
echo $content;
?>
用form_img.php来实现表单的部分:
<?php
header('content-type:text/html;charset=utf-8');
if(isset($_REQUEST['authcode'])){
session_start();
if(strtolower(trim($_REQUEST['authcode'])) == $_SESSION['authcode']){
echo '<font color="#0000CC">输入正确</font>';
}else{
echo '<font color="#CC0000"> <b>输入错误</b> </font>';
}
exit();
}
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>确认验证码</title>
</head>
<body>
<form method="post" action="./form_img.php">
<p>
验证码图片:<img id="captcha_img" border="1" src="./captcha_img.php?r=<?php echo rand();?>" width:500px; height:300px" />
<a href="javascript:void(0)" οnclick="document.getElementById('captcha_img').src='./captcha_img.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>
效果图如下: