ホームページ  >  記事  >  バックエンド開発  >  PHP検証コードファイルクラス

PHP検証コードファイルクラス

WBOY
WBOYオリジナル
2016-07-25 08:42:24958ブラウズ
  1. class CCheckCodeFile
  2. {
  3. //認証コードの桁数
  4. private $mCheckCodeNum = 4;
  5. //生成された認証コード
  6. private $mCheckCode = '';
  7. //認証コード画像
  8. private $mCheckImage = '';
  9. //干渉ピクセル
  10. private $mDisturbColor = '';
  11. //検証コード画像幅
  12. private $mCheckImageWidth = '80';
  13. //検証コード画像幅
  14. private $mCheckImageHeight = '20';
  15. /**
  16. *
  17. * @短い出力ヘッダー
  18. *
  19. */
  20. プライベート関数 OutFileHeader()
  21. {
  22. ヘッダー ("Content-type: image/png");
  23. }
  24. /**
  25. *
  26. * @brief は確認コードを生成します
  27. *
  28. * /
  29. プライベート関数 CreateCheckCode()
  30. {
  31. $this->mCheckCode = strtoupper(substr(md5(rand()),0,$this->mCheckCodeNum));
  32. return $this->mCheckCode ;
  33. }
  34. /**
  35. *
  36. * @brief が確認コード画像を生成します
  37. *
  38. */
  39. プライベート関数 CreateImage()
  40. {
  41. $this->mCheckImage = @imagecreate ($this->mCheckImageWidth,$this->mCheckImageHeight);
  42. imagecolorallocate ( $this- >mCheckImage, 200, 200, 200);
  43. return $this->mCheckImage;
  44. }
  45. /**
  46. *
  47. * @brief 画像の干渉ピクセルを設定します
  48. *
  49. */
  50. プライベート関数 SetDisturbColor()
  51. {
  52. for ($i=0 ;$i< ;=128;$i++)
  53. {
  54. $this->mDisturbColor = imagecolorallocate ($this->mCheckImage, rand(0,255), rand(0,255), rand(0,255));
  55. imagesetpixel($this ->gt; mCheckImage,rand(2,128),rand(2,38),$this->mDisturbColor);
  56. }
  57. }
  58. /**
  59. *
  60. * @brief 認証コード画像のサイズを設定します
  61. *
  62. * @param $width width
  63. *
  64. * @param $height height
  65. *
  66. */
  67. public function SetCheckImageWH($width,$height)
  68. {
  69. if($width==''||$height=='')return false;
  70. $this->mCheckImageWidth = $width;
  71. $this->mCheckImageHeight = $height;
  72. return true;
  73. }
  74. /**
  75. *
  76. * @brief 認証コードの絵に認証コードを一つずつ描きます
  77. *
  78. */
  79. プライベート関数 WriteCheckCodeToImage()
  80. {
  81. for ($i=0;$i<=$this->mCheckCodeNum;$i++)
  82. {
  83. $bg_color = imagecolorallocate ($ this-> ;mCheckImage, rand(0,255), rand(0,128), rand(0,255));
  84. $x = Floor($this->mCheckImageWidth/$this->mCheckCodeNum)*$i;
  85. $y = rand(0 ,$this->mCheckImageHeight-15);
  86. imagechar ($this->mCheckImage, 5, $x, $y, $this->mCheckCode[$i], $bg_color);
  87. }
  88. }
  89. /**
  90. *
  91. * @brief 出力確認コードの画像
  92. *
  93. */
  94. パブリック関数 OutCheckImage()
  95. {
  96. $this ->OutFileHeader();
  97. $this ->CreateCheckCode();
  98. $this ->CreateImage();
  99. $this - >SetDisturbColor();
  100. $this ->WriteCheckCodeToImage();
  101. imagepng($this->mCheckImage);
  102. imagedestroy($this->mCheckImage);
  103. }
  104. }
  105. $c_check_code_image = new CCheckCodeFile() ;
  106. //$c_check_code_image ->SetCheckImageWH(100,50);//確認コード画像のサイズを設定します
  107. $c_check_code_image ->OutCheckImage();
  108. ?>
コードをコピー

検証コード、PHP


声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。