ホームページ  >  記事  >  バックエンド開発  >  PHP が検証コード イメージを生成するプログラム_PHP チュートリアル

PHP が検証コード イメージを生成するプログラム_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-13 17:10:15839ブラウズ

海外の Web サイトからダウンロードした php は、確認コードの画像コードを生成します。必要な場合は、上記をクリックして php として保存して使用することもできます。

验证程序 CaptchaSecurityImages.php

コードは次のとおりです コードをコピー

session_start();

if( isset($_POST['submit'])) {
if( $_SESSION['security_code'] == $_POST['security_code'] && !empty($_SESSION['security_code'] ) ) {
// フォームを処理するためのコードをここに挿入します (送信内容をメールで送信したり、データベースに入力したりするなど)。 echo 'ありがとうございます。メッセージには "'.$_POST['message'] と書かれていました。'";
unset($_SESSION['security_code']);
} その他 {
// エラーメッセージを表示するコードをここに挿入します
echo '申し訳ありませんが、無効なセキュリティ コードを入力しました';
}
} その他 {
?>

<フォームアクション="form.php" メソッド="投稿">













}
?>

代码如下 复制幣

session_start();

/*
* ファイル: CaptchaSecurityImages.php
* 著者: サイモン・ジャービス
* 著作権: 2006 Simon Jarvis
* 日付: 03/08/06
*更新日: 07/02/07
* 要件: GD および FreeType ライブラリを備えた PHP 4/5
*リンク: http://www.white-hat-web-design.co.uk/articles/php-captcha.php
*
* このプログラムはフリーソフトウェアです。再配布したり、
することができます * GNU General Public License の条件に基づいて変更してください
* Free Software Foundation によって発行されたもの。どちらかのバージョン 2
* ライセンス、または (オプションで) 以降のバージョン。
*
※このプログラムは少しでもお役に立てればと思って配信しております
* ただし、いかなる保証もありません。
の暗黙の保証もなしに * 商品性または特定の目的への適合性。
を参照してください * 詳細については、GNU 一般公衆利用許諾書:
* http://www.gnu.org/licenses/gpl.html
*
*/

クラス CaptchaSecurityImages {

var $font = 'monofont.ttf';

関数generateCode($characters) {
  /* 考えられるすべての文字をリストします。似た文字と母音は削除されています */
  $possible = '23456789bcdfghjkmnpqrstvwxyz';
  $コード = '';
  $i = 0;
  while ($i < $characters) {
   $code .= substr($possible, mt_rand(0, strlen($possible)-1), 1);
   $i++;
  }
  $コードを返します;
 }

関数 CaptchaSecurityImages($width='120',$height='40',$characters='6') {
  $code = $this->generateCode($characters);
  /* フォント サイズは画像の高さの 75% になります */
  $font_size = $height * 0.75;
  $image = @imagecreate($width, $height) または die('新しい GD 画像ストリームを初期化できません');
  /* 色を設定します */
  $background_color = imagecolorallocate($image, 255, 255, 255);
  $text_color = imagecolorallocate($image, 20, 40, 100);
  $noise_color = imagecolorallocate($image, 100, 120, 180);
  /* バックグラウンドでランダムなドットを生成します */
  for( $i=0; $i<($width*$height)/3; $i++ ) {
   imagefilledellipse($image, mt_rand(0,$width), mt_rand(0,$height), 1, 1, $noise_color);
  }
  /* バックグラウンドでランダムな行を生成 */
  for( $i=0; $i<($width*$height)/150; $i++ ) {
   imageline($image, mt_rand(0,$width), mt_rand(0,$height), mt_rand(0,$width), mt_rand(0,$height), $noise_color);
  }
  /* テキストボックスを作成し、テキストを追加します */
  $textbox = imagettfbbox($font_size, 0, $this->font, $code) または die('imagettfbbox 関数のエラー');
  $x = ($width - $textbox[4])/2;
  $y = ($height - $textbox[5])/2;
  imagettftext($image, $font_size, 0, $x, $y, $text_color, $this->font , $code) または die('imagettftext 関数のエラー');
  /* キャプチャ画像をブラウザに出力 */
  header('Content-Type: image/jpeg');
  imagejpeg($image);
  imagedestroy($image);
  $_SESSION['security_code'] = $code;
 }

}

$width = isset($_GET['width']) ? $_GET['幅'] : '120';
$height = isset($_GET['height']) ? $_GET['身長'] : '40';
$characters = isset($_GET['characters']) && $_GET['characters'] > 1? $_GET['characters'] : '6';

$captcha = 新しい CaptchaSecurityImages($width,$height,$characters);

?>

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/629694.html技術記事一項国外ウェブサイトにダウンロードされた php は、私が例で示したように、テストコードの図表コードを生成します。必要な友人があれば、php を上に保存して使用できます。
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。