php验证码--字符

来源:互联网 发布:淘宝女装店铺排行榜 编辑:程序博客网 时间:2024/05/29 16:11

字符验证码的制作分五步:

1.生成图像

2.生成随机数

3.制作干扰点、线

4.输出图像

5.销毁图像


下面直接上代码

服务器端:

<?phpsession_start();$width = 100;$length = 30;$captch_code = '';$image = imagecreatetruecolor($width, $length);$color = imagecolorallocate($image, 255, 255, 255);imagefill($image, 0, 0, $color);//产生随机数for($i=0; $i<4; $i++){$fontsize = 6; //?$fontcolor = imagecolorallocate($image, rand(0,120), rand(0,120), rand(0,120));$data = "abcdefghijklmnopqrstuvwxyz1234567890";$fontcontent = substr($data,rand(0,strlen($data)),1);$captch_code .= $fontcontent;$x = ($i*$width/4) + rand($length/6,$length/3);$y = rand($length/6,$length/3);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,$width-1), rand(1,$width-1), $pointcolor);}//干扰线for($i=0; $i<5; $i++){$linecolor = imagecolorallocate($image, rand(80,220), rand(80,220), rand(80,220));imageline($image, rand(1,$width-1), rand(1,$width/3-1), rand(1,$width-1), rand(1,$width/3-1), $linecolor);}header("content-type: image/png");imagepng($image);imagedestroy($image);


客户端验证代码:

<?phpif(isset($_REQUEST['authcode'])){session_start();if(strtolower($_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.php?r=<?php echo rand();?>" witdh="100px" /><a href="javascript:void(0)" onclick="document.getElementById('captch_code').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>


结果图:



1 0
原创粉丝点击