PHP图形验证码的具体实现方法

原创
2016-06-13 11:05:39 732浏览

我们现在在网站注册等地方经常会见到需要你输入验证码的请款,它就是将随机数字或符号以图片的形式展现在用户面前,并提供验证后才能使用相关功能。今天我们就介绍具体实现代码如下:

  1. php
  2. class rndnum{
  3. function rnd(){
  4. srand((double)microtime()*1000000);
  5. $rnd_number=array(
  6. 1=>'1',
  7. 2=>'2',
  8. 3=>'3',
  9. 4=>'4',
  10. 5=>'5',
  11. 6=>'6',
  12. 7=>'7',
  13. 8=>'8',
  14. 9=>'9',
  15. 10=>'a',
  16. 11=>'b',
  17. 12=>'c',
  18. 13=>'d',
  19. 14=>'e',
  20. 15=>'f',
  21. 16=>'g',
  22. 17=>'h',
  23. 18=>'i',
  24. 19=>'j',
  25. 20=>'k',
  26. 21=>'l',
  27. 22=>'m',
  28. 23=>'n',
  29. 24=>'o',
  30. 25=>'p',
  31. 26=>'q',
  32. 27=>'r',
  33. 28=>'s',
  34. 29=>'t',
  35. 30=>'u',
  36. 31=>'v',
  37. 32=>'w',
  38. 33=>'x',
  39. 34=>'y',
  40. 35=>'z',
  41. 36=>'0'
  42. );
  43. $result=array_rand($rnd_number,6);
  44. $j=count($result);
  45. for ($i=0;$i$j;$i++) {
  46. $re.=$rnd_number[$result[$i]];
  47. }
  48. //$re=$rnd_number[$result[1]].$rnd_number[$result[2]].$rnd_number[$result[3]].$rnd_number[$result[4]].$rnd_number[$result[5]].$rnd_number[$result[6]].$rnd_number[$result[7]];
  49. //return array_keys($result);
  50. return $re;
  51. }
  52. }
  53. /*用法
  54. $rndnum=new rndnum();
  55. $num=$rndnum->rnd();
  56. echo $num;
  57. */
  58. ?>

生成PHP图形验证码的图片,将随机数填充到里边:

  1. php
  2. Header("Content-type: image/PNG");
  3. require_once("rndnum.php");
  4. $rndnum=new rndnum();
  5. $authnum=$rndnum->rnd();
  6. session_start();
  7. $_SESSION["extrra_code"]=$authnum;
  8. $im = imagecreate(72,20);
  9. $black = ImageColorAllocate($im, 0,0,0);
  10. $white = ImageColorAllocate($im, 255,255,255);
  11. $gray = ImageColorAllocate($im, 200,200,200);
  12. imagefill($im,0,0,$gray);
  13. imagestring($im,5,10,3,$authnum,$black);
  14. for($i=0;$i200;$i++) //加入干扰象素
  15. {
  16. $randcolor = ImageColorallocate($im,rand(0,255),rand(0,255),rand(0,255));
  17. imagesetpixel($im, rand()%70 , rand()%30 , $randcolor);
  18. }
  19. ImagePNG($im);
  20. ImageDestroy($im);
  21. ?>

以上就是全部PHP图形验证码的实现代码,希望对大家有所帮助。


声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。