当前位置 : 主页 > 网络编程 > PHP >

php生成验证码与验证码验证完整实例

来源:互联网 收集:自由互联 发布时间:2021-07-03
!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" " http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"html xmlns=" http://www.w3.org/1999/xhtml"headmeta http-equiv="Content-Type" content="text/html; charset=utf-8" /title无标
<!DOCTYPE  html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" " http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html  xmlns=" http://www.w3.org/1999/xhtml">
<head>
<meta  http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
<script  language="javascript">
 function refresh_code()
 {
  form1.imgcode.src="verifycode.php?a="+Math.random();
 }
</script>
</head>
<body>
<form  id="form1" name="form1" method="post" action="checkcode.php">
  <label  for="code">验证码:</label>
  <input  type="text" name="code" id="textfield" />
  <img  id="imgcode" src="VerifyCode.php" alt="验证码" />
  <a  href="javascript:refresh_code()">看不清?换一个</a>
  <input  type="submit" name="button" id="button" value="提交" />
</form>
</body>
</html>

verifycode.php文件代码如下
<?php
 /*
  图片验证码 Powered By KASON test <a href=" http://www.hzhuti.com/nokia/c6/"> http://www.hzhuti.com/nokia/c6/</a>   */
  session_start();
  $num=4;//验证码个数
  $width=80;//验证码宽度
  $height=20;//验证码高度
  $code=' ';
  for($i=0;$i<$num;$i++)//生成验证码
  {
   switch(rand(0,2))
   {
    case  0:$code[$i]=chr(rand(48,57));break;//数字
    case  1:$code[$i]=chr(rand(65,90));break;//大写字母
    case  2:$code[$i]=chr(rand(97,122));break;//小写字母
   }
  }
  $_SESSION["VerifyCode"]=$code;
  $image=imagecreate($width,$height);
  imagecolorallocate($image,255,255,255);
  for($i=0;$i<80;$i++)//生成干扰像素
  {
   $dis_color=imagecolorallocate($image,rand(0,2555),rand(0,255),rand(0,255));
   imagesetpixel($image,rand(1,$width),rand(1,$height),$dis_color);
  }
  for($i=0;$i<$num;$i++)//打印字符到图像
  {
   $char_color=imagecolorallocate($image,rand(0,2555),rand(0,255),rand(0,255));
   imagechar($image,60,($width/$num)*$i,rand(0,5),$code[$i],$char_color);
  }
  header("Content-type:image/png");
  imagepng($image);//输出图像到浏览器
  imagedestroy($image);//释放资源
?>  

checkcode.php文件如下
<meta http-equiv="Content-Type"  content="text/html; charset=utf-8"  />
<?php
ini_set('display_errors','Off');
session_start();
  if((strtoupper($_POST["code"])) ==strtoupper(($_SESSION["VerifyCode"]))){
 print("验证码正确,");
  }else{
    print("验证码错误,");
  }
  echo  "提交的验证码:".strtoupper($_POST["code"]).",正确的验证码:".strtoupper($_SESSION["VerifyCode"]);
?>
网友评论