php编程每天必学之验证码

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

1.验证码图片生成

captcha.php

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

2.页面实现验证码功能

form.php

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

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