現在の位置: ホーム> 最新記事一覧> PHPを使用して確認コード写真を生成する方法:詳細な手順と実装チュートリアル

PHPを使用して確認コード写真を生成する方法:詳細な手順と実装チュートリアル

M66 2025-07-28

PHPを使用して検証コード画像を生成する方法

検証コード(CAPTCHA)は、ユーザーのアイデンティティを検証するために広く使用されているテクノロジーであり、通常、ユーザーが画像内の文字や画像を識別することを要求することにより、ロボットの自動化を回避します。この記事では、PHPを介して検証コード画像を生成し、Webページに表示する方法を詳細に紹介します。

検証コード生成スクリプトを作成します

まず、captcha.phpという名前のPHPファイルを作成し、ファイル拡張子が.phpであることを確認する必要があります。

基本パラメーターを設定します

PHPスクリプトでは、いくつかの変数を定義して、検証コード画像のサイズ、数、および可能な文字セットを設定する必要があります。これがコードの例です。

 $width = 120; // 検証コード画像の幅
 $height = 40; // 検証コード画像の高さ
 $characters = 4; // 検証コード文字の数
 $possibleChars = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';

画像を作成します

次に、空白の画像を作成し、背景色、テキスト色、フォントなどの基本的なプロパティを設定します。コードは次のとおりです。

 $image = imagecreatetruecolor($width, $height);
 $backgroundColor = imagecolorallocate($image, 255, 255, 255); // 背景色:白
 $textColor = imagecolorallocate($image, 0, 0, 0); // 文字色:黒
 imagefill($image, 0, 0, $backgroundColor);
 $font = 'path/to/your/font.ttf'; // フォントファイルパス

ランダムに生成された検証コード文字

次に、検証コード文字をランダムに生成し、画像に描画する必要があります。 PHPは、乱数を生成する機能を提供し、文字配列から文字を選択するために使用できます。これがサンプルコードです:

 $captcha = '';
 for ($i = 0; $i < $characters; $i++) {
     $randomChar = $possibleChars[rand(0, strlen($possibleChars) - 1)];
     $captcha .= $randomChar;
     $x = ($width / $characters) * $i + 10; // 文字位置
     $y = $height / 2 + 15; // テキストセンターオフセット
     imagettftext($image, 20, 0, $x, $y, $textColor, $font, $randomChar);
 }

セッションに確認コードを保存します

その後の検証のために、生成された検証コードをPHPのセッションに保存する必要があります。以下はコードです。

 session_start();
 $_SESSION['captcha'] = $captcha;

出力検証コード画像

最後に、画像出力ヘッダー情報を設定し、検証コードイメージをユーザーに表示する必要があります。

 header('Content-type: image/png');
 imagepng($image);
 imagedestroy($image);

要約します

上記の手順を通じて、簡単な検証コードシステムを正常に実装しました。ページが更新されるたびに、ユーザーは新しい検証コードイメージを表示し、自動攻撃を防ぐ機能が向上します。実際のアプリケーションでは、ユーザーのIDを確認するために、セッションのストレージでユーザーが入力した検証コードを比較できます。

これは、ニーズに応じてさらに拡張および最適化できる基本的なPHP検証コードの実装例です。