現在の位置: ホーム> 最新記事一覧> PHPを使用して基本的な画像検証コードを作成し、フォーム検証を実行する方法

PHPを使用して基本的な画像検証コードを作成し、フォーム検証を実行する方法

M66 2025-06-23

PHPを使用して、基本的な画像検証コード関数を実装します

画像検証コードは、ウェブサイトの登録、ログイン、コメント、その他のシナリオで広く使用されており、フォームセキュリティを改善し、自動スクリプト攻撃に抵抗する重要な手段です。この記事では、単純なPHP画像検証コードシステムを段階的に実装し、PHPのGDグラフィックライブラリに依存して画像生成を完了し、セッションメカニズムを組み合わせて検証コード検証を完了します。

1。準備

開始する前に、サーバー環境でGDライブラリが有効になっていることを確認してください。 GDライブラリは、グラフィック画像を処理するPHPの拡張モジュールであり、画像を動的に作成するために使用されます。 phpinfo()を実行することにより、拡張機能が有効かどうかを確認できます。

2。検証コード写真を生成します

captcha.phpという名前のファイルを作成し、GDライブラリを使用して乱数を持つ画像を動的に生成し、その後の検証のために生成された検証コード値を$ _Sessionに保存します。

以下は、検証コード画像生成のコードです。

 
<?php
session_start();

// ランダムな4桁の検証コードを生成します
$code = rand(1000, 9999);

// 検証コードをセッションに保存します
$_SESSION['captcha_code'] = $code;

// 画像リソースを作成します
$image = imagecreatetruecolor(120, 40);

// 背景色を白に設定します
$bg_color = imagecolorallocate($image, 255, 255, 255);
imagefill($image, 0, 0, $bg_color);

// 干渉点を追加します
for ($i = 0; $i < 100; $i++) {
    $point_color = imagecolorallocate($image, rand(0, 255), rand(0, 255), rand(0, 255));
    imagesetpixel($image, rand(0, 120), rand(0, 40), $point_color);
}

// テキストの色を黒に設定します
$text_color = imagecolorallocate($image, 0, 0, 0);

// 検証コードテキストを描画します(フォントパスが正しいことを確認してください)
imagettftext($image, 20, 0, 30, 30, $text_color, 'path/to/font.ttf', $code);

// ブラウザに画像を出力します
header('Content-Type: image/png');
imagepng($image);
imagedestroy($image);
?>

3.検証コード画像を表示します

検証コード画像をフロントエンドページに埋め込むには、次の方法を使用してcaptcha.phpを呼び出すことができます。

 <img src="captcha.php" alt="検証コード">

画像をクリックして検証コードをリロードしてユーザーエクスペリエンスを強化するなど、画像に更新機能を追加することをお勧めします。

4.ユーザーの入力を確認します

ユーザーがフォームを送信すると、ユーザーが入力した検証コードをセッションに保存された値と比較して、入力が正しいかどうかを判断する必要があります。これが確認コードの例です。

 
<?php
session_start();

if (isset($_POST['captcha'])) {
    $user_input = $_POST['captcha'];

    if ($user_input == $_SESSION['captcha_code']) {
        // 検証は成功しました,対応する操作を実行します
    } else {
        // 検証に失敗しました,再入力するように促します
    }
}
?>

このロジックは、確認操作が必要なユーザー登録、ログイン検証など、あらゆる形式のシナリオに適しています。

要約します

このチュートリアルを通して、PHPおよびGDライブラリを使用して画像検証コードを実装する基本的な方法を学びました。このソリューションは、ランダム文字を含む画像を生成し、セッションメカニズムを組み合わせて、ほとんどの中小プロジェクトに適したサーバー側の検証を完了するように設計されています。

これに基づいて、さらなる拡張を行うことができます。たとえば、次のようになります。

  • 検証コード文字タイプ(番号 +文字)を追加する

  • グラフィック干渉線を追加します

  • フォントサイズと角度を動的に生成します

  • 検証コードの有効期限などを追加します。

検証コードの合理的な設計は、悪意のある攻撃を防ぐのに役立つだけでなく、システムの全体的なセキュリティを改善します。