这里我们介绍图片验证码的制作,有关字符验证码可以参考以下文章:
点击打开链接
图片验证码的制作分三步:
1.制作图片库
2.随机选取一张图片
3.输出图片内容
代码如下(这里为了方便我直接用的本地的图片,实际中会有大量图片,路径存放在数据库中):
<?php session_start(); $data = array( dirname(__FILE__).'\pics\pic0.jpg'=>'狗', dirname(__FILE__).'\pics\pic1.jpg'=>'猫', dirname(__FILE__).'\pics\pic2.jpg'=>'鱼', dirname(__FILE__).'\pics\pic3.jpg'=>'猪', dirname(__FILE__).'\pics\pic4.jpg'=>'马', dirname(__FILE__).'\pics\pic5.jpg'=>'驴', dirname(__FILE__).'\pics\pic6.jpg'=>'鸟', dirname(__FILE__).'\pics\pic7.jpg'=>'鸡', dirname(__FILE__).'\pics\pic8.jpg'=>'鸭', dirname(__FILE__).'\pics\pic9.jpg'=>'象', ); $rnd = rand(0,9); $img = dirname(__FILE__).'\pics\pic'.$rnd.'.jpg'; $_SESSION['authcode'] = $data[$img]; $content = file_get_contents($img); header("content-type: image/png"); echo $content;
<?php if(isset($_REQUEST['authcode'])){ session_start(); if(($_REQUEST['authcode']) == $_SESSION['authcode']){ echo '<font color="#0000cc">输入正确</font>'; }else{ echo '<font color="#cc0000"><b>输入错误</b></font>'; } exit(); } ?> <!DOCTYPE html> <html> <head> <title></title> </head> <body> <form method="post" action="./form.php"> <p> 验证码图片:<img id="captch_code" border="1" src="./captcha_img.php?r=<?php echo rand();?>" witdh="100px" /> <a href="javascript:void(0)" onclick="document.getElementById('captch_code').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>