首页 > 语言 > PHP > 正文

php编程每天必学之验证码

2024-09-04 11:46:56
字体:
来源:转载
供稿:网友

本文为大家分享了php图片验证码的实现代码,分享给大家供大家参考,具体内容如下

1.验证码图片生成

captcha.php

  1. //1.生成100*30大小的图片,默认为黑色 
  2.  
  3. $image = imagecreatetruecolor(100,30); 
  4.  
  5. //创建白色底图 
  6.  
  7. $bgcolor = imagecolorallocate($image,255,255,255); 
  8.  
  9. //用白色填充黑色 
  10.  
  11. imagefill ($image,0,0,$bgcolor); 
  12. //Vevb.com 
  13.  
  14. //2.随机显示数字或字母 
  15.  
  16. $captch_code = ""
  17.  
  18. for($i=0;$i<4;$i++){ 
  19.  
  20.  $fontsize=6; 
  21.  
  22.  $fontcolor=imagecolorallocate($image,rand(0,120),rand(0,120),rand(0,120)); 
  23.  
  24.  $data = "abcdefghijkmnpqrstuvwxy3456789"
  25.  
  26.  $fontcontent =substr($data,rand(0,strlen($data)),1); 
  27.  
  28.  $captch_code .=$fontcontent
  29.  
  30.  $x = ($i*100/4)+rand(5,10); 
  31.  
  32.  $y = rand(5,10); 
  33.  
  34.  imagestring($image$fontsize$x$y$fontcontent,$fontcolor); 
  35.  
  36.  
  37. $_SESSION["authcode"] = $captch_code
  38.  
  39. //3.增加干扰 
  40.  
  41. //干扰点 
  42.  
  43. for($i=0;$i<100;$i++){ 
  44.  
  45.  $pointcolor=imagecolorallocate($image,rand(50,200),rand(50,200),rand(50,200)); 
  46.  
  47.  imagesetpixel($image,rand(1,99),rand(1,29),$pointcolor); 
  48.  
  49.  
  50. //干扰线 
  51.  
  52. for($i=0;$i<2;$i++){ 
  53.  
  54.  $linecolor=imagecolorallocate($image,rand(80,220),rand(80,220),rand(80,220)); 
  55.  
  56.  imageline($image,rand(1,99),rand(1,29),rand(1,99),rand(1,29),$linecolor); 
  57.  
  58.  
  59. header("content-type:image/png"); 
  60.  
  61. imagepng($image); 

2.页面实现验证码功能

form.php

  1. <?php 
  2.  
  3. if(isset($_POST["authcode"])){ 
  4.  
  5.  session_start(); 
  6.  
  7.  if(strtolower($_POST["authcode"])==$_SESSION["authcode"]){ 
  8.  
  9.   echo "OK"
  10.  
  11.  }else
  12.  
  13.   echo "NO"
  14.  
  15.  } 
  16.  
  17. } 
  18.  
  19. ?>          
  20.  
  21.  <meta charset="UTF-8"
  22.  
  23.  <title>Document</title> 
  24.     
  25. <form action="form.php" method="post"
  26.  
  27.  <p>验证码图片: <img id="img" border="1" src="captcha.php?r=<?php echo rand()?>" alt=""
  28.  
  29.  <a href="javascript:void(0)" onclick="document.getElementById('img').src='captcha.php?r'+Math.random() ">换一个</a> 
  30.  
  31.  </p> 
  32.  
  33.  <p><input type="text" name="authcode"></p> 
  34.  
  35.  <p><input type="submit" value="提交"></p>  
  36.  
  37. </form> 

以上就是本文的全部内容,帮助大家轻松实现php图片验证码。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表