当前位置:首页 > 综合实例 > 列表

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

发布:smiling 来源: PHP粉丝网  添加日期:2014-01-16 09:29:02 浏览: 评论:0 

html页面,代码如下

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
  2. <html xmlns="http://www.w3.org/1999/xhtml"> 
  3. <head> 
  4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
  5. <title>PHP验证码实例</title> 
  6. <script language="javascript"> 
  7.  function refresh_code() 
  8.  { 
  9.   form1.imgcode.src="verifycode.php?a="+Math.random(); 
  10.  } 
  11. </script> 
  12. </head> 
  13. <body> 
  14. <form id="form1" name="form1" method="post" action="checkcode.php"> 
  15.   <label for="code">验证码:</label> 
  16.   <input type="text" name="code" id="textfield" /> 
  17.   <img id="imgcode" src="VerifyCode.php" alt="验证码" /> 
  18.   <a href="javascript:refresh_code()">看不清?换一个</a> 
  19.   <input type="submit" name="button" id="button" value="提交" /> 
  20. </form> 
  21. </body> 
  22. </html> 

verifycode.php文件代码如下:

  1. <?php 
  2.  /* 
  3.   图片验证码 Powered By KASON 
  4.    */ 
  5.   session_start(); 
  6.   $num=4;//验证码个数 
  7.   $width=80;//验证码宽度 
  8.   $height=20;//验证码高度 
  9.   $code=' '
  10.   for($i=0;$i<$num;$i++)//生成验证码 
  11.   { 
  12.    switch(rand(0,2)) 
  13.    { 
  14.     case 0:$code[$i]=chr(rand(48,57));break;//数字 
  15.     case 1:$code[$i]=chr(rand(65,90));break;//大写字母 
  16.     case 2:$code[$i]=chr(rand(97,122));break;//小写字母 
  17.    } 
  18.   } 
  19.   $_SESSION["VerifyCode"]=$code
  20.   $image=imagecreate($width,$height); 
  21.   imagecolorallocate($image,255,255,255); 
  22.   for($i=0;$i<80;$i++)//生成干扰像素 
  23.   { 
  24.    $dis_color=imagecolorallocate($image,rand(0,2555),rand(0,255),rand(0,255)); 
  25.    imagesetpixel($image,rand(1,$width),rand(1,$height),$dis_color); 
  26.   } 
  27.   for($i=0;$i<$num;$i++)//打印字符到图像 
  28.   { 
  29.    $char_color=imagecolorallocate($image,rand(0,2555),rand(0,255),rand(0,255)); 
  30.    imagechar($image,60,($width/$num)*$i,rand(0,5),$code[$i],$char_color); 
  31.   } 
  32.   header("Content-type:image/png"); 
  33.   imagepng($image);//输出图像到浏览器 
  34.   imagedestroy($image);//释放资源 
  35. ?> 

checkcode.php文件如下:

  1. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
  2. <?php 
  3. ini_set('display_errors''Off'); 
  4. session_start(); 
  5.   if((strtoupper($_POST["code"])) == strtoupper(($_SESSION["VerifyCode"]))){ 
  6.  print("验证码正确,"); 
  7.   }else
  8.     print("验证码错误,"); 
  9.   } 
  10.   echo "提交的验证码:".strtoupper($_POST["code"]).",正确的验证码:".strtoupper($_SESSION["VerifyCode"]); 
  11. ?> 

Tags: 生成 验证码 PHP实例

分享到: