ホームページ  >  記事  >  バックエンド開発  >  PHPで画像検証コードをランダムに生成する方法を詳しく解説

PHPで画像検証コードをランダムに生成する方法を詳しく解説

WBOY
WBOYオリジナル
2016-07-25 08:52:44912ブラウズ
  1. session_start();
  2. //検証コードの文字列をランダムに生成します
  3. function random($len) {
  4. $srcstr="ABCDEFGHIJKLMNPQRSTUVWXYZ123456789";
  5. mt_srand();
  6. $strs=" ";
  7. for($i=0;$i<$len;$i++) {
  8. $strs.=$srcstr[mt_rand(0,33)];
  9. }
  10. return ($strs);
  11. }
  12. $str =random(5); //ランダムに生成された文字列
  13. $width=60; //認証コード画像の幅
  14. $height=25; //認証コード画像の高さ
  15. //過去の日付
  16. header("有効期限:Mon,26 Jul 1997 05:00:00 GMT");
  17. //常に変更
  18. header("Last-Modified:".gmdate("D,d M Y H:i:s")."GMT");
  19. //HTTP/1.1
  20. header("Cache-Control:no-store,no-cache,must-revalidate");
  21. header("Cache-Control:post-check=0,pre-check=0",false) );
  22. //HTTP/1.0
  23. header("Pragma:no-cache");
  24. header("Content-Type:image/png");
  25. $im=imagecreate($width,$height);
  26. $ back=imagecolorallocate($im,0xFF,0xFF,0xFF); //背景色
  27. $pix=imagecolorallocate($im,187,190,247) //ぼやけたポイントカラー
  28. $font=imagecolorallocate($im,41,163,238); Color
  29. //ぼやけた点を 1000 個描画します
  30. mt_srand();
  31. for($i=0;$i<1000;$i++) {
  32. imagesetpixel($im,mt_rand(0,$width),mt_rand(0 ,$height) ),$pix);
  33. }
  34. imagestring($im,5,7,5,$str,$font);//ランダムに生成された文字列を描画します
  35. imagerectangle($im,0,0,$width -1,$ height-1,$font);//検証コードの周囲に 1px の境界線を描画します image
  36. imagepng($im);//PNG 形式のグラフィックを作成します
  37. imagedestroy($im);//画像を処理します メモリ内で分解して解放しますspace
  38. $_SESSION["auth_code"]=$str;
  39. ?>
コードをコピー

例 2、PHP ランダム検証コード phpは簡単な検証コードを生成します

  1. $image_width=140;
  2. $image_height=50;
  3. srand(microtime()*10000);
  4. for($i=0;$i<4;$i++){
  5. $number.=dechex(rand(0,15));
  6. }
  7. $check=$number;
  8. $im=imagecreate($image_width,$image_height);
  9. imagecolorallocate($im,255,255,255);
  10. for($i =0;$i $font=rand(40,80);
  11. $x=rand(1,8)+$image_width*$i/4;
  12. $y= rand(1,$image_height/4);
  13. $color=imagecolorallocate($im,rand(0,100),rand(0,150),rand(0,200));
  14. imagestring($im,$font,$x,$y, $check[$i],$color);
  15. }
  16. imagepng($im);
  17. imagedestroy($im);
  18. ?>
コードをコピー


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