php编程每天必学之验证码

php编程每天必学之验证码,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. //2.随机显示数字或字母
  8. $captch_code = "";
  9. for($i=0;$i<4;$i++){
  10. $fontsize=6;
  11. $fontcolor=imagecolorallocate($image,rand(0,120),rand(0,120),rand(0,120));
  12. $data = "abcdefghijkmnpqrstuvwxy3456789";
  13. $fontcontent =substr($data,rand(0,strlen($data)),1);
  14. $captch_code .=$fontcontent;
  15. $x = ($i*100/4)+rand(5,10);
  16. $y = rand(5,10);
  17. imagestring($image, $fontsize, $x, $y, $fontcontent,$fontcolor);
  18. }
  19. $_SESSION["authcode"] = $captch_code;
  20. //3.增加干扰
  21. //干扰点
  22. for($i=0;$i<100;$i++){
  23. $pointcolor=imagecolorallocate($image,rand(50,200),rand(50,200),rand(50,200));
  24. imagesetpixel($image,rand(1,99),rand(1,29),$pointcolor);
  25. }
  26. //干扰线
  27. for($i=0;$i<2;$i++){
  28. $linecolor=imagecolorallocate($image,rand(80,220),rand(80,220),rand(80,220));
  29. imageline($image,rand(1,99),rand(1,29),rand(1,99),rand(1,29),$linecolor);
  30. }
  31. header("content-type:image/png");
  32. 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. <!doctype html>
  12. <html >
  13. <head>
  14. <meta charset="UTF-8">
  15. <title>Document</title>
  16. </head>
  17. <body>
  18. <form action="form.php" method="post">
  19. <p>验证码图片: <img src="captcha.php?r=<?php echo rand()?>" alt="">
  20. <a href="javascript:void(0)" onclick="document.getElementById('img').src='captcha.php?r'+Math.random() ">换一个</a>
  21. </p>
  22. <p><input type="text" name="authcode"></p>
  23. <p><input type="submit" value="提交"></p>
  24. </form>
  25. </body>
  26. </html>

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