PHP と GD ライブラリを使用して動的な画像検証コードを作成する方法
Web アプリケーションでは、ロボットや悪意のある攻撃者による操作の自動化を防ぐために、ユーザーに検証の入力を求める検証コードがよく使用されます。確認するためのコード。 PHPとGDライブラリを利用することで、動的な画像検証コードを簡単に作成できます。
GD ライブラリは、画像を処理するためのいくつかの関数を提供する PHP の拡張ライブラリです。この記事では、GD ライブラリの機能を使用して、ランダムな文字を含む画像を生成し、それを検証コードとしてユーザーに提示します。
ステップ 1: 単純な PHP Web ページを作成する
まず、動的な画像検証コードを表示するための単純な PHP Web ページを作成する必要があります。 Index.php というファイルを作成し、次のコードをファイルにコピーします。
<!DOCTYPE html> <html> <head> <title>动态图片验证码</title> </head> <body> <h1>动态图片验证码</h1> <img src="captcha.php" alt="验证码"> <br> <a href="">换一个验证码</a> </body> </html>
この単純な HTML ページでは、検証コードを表示するタイトルと画像要素を作成しました。画像の src 属性に captcha.php を設定し、後でこのファイル内に画像を生成してレンダリングします。
ステップ 2: captcha.php ファイルを作成する
次に、captcha.php というファイルを作成し、次のコードをファイルにコピーする必要があります:
<?php // 启动会话 session_start(); // 创建图像宽度和高度 $width = 200; $height = 50; // 创建一个空的图像 $image = imagecreatetruecolor($width, $height); // 设置背景颜色 $bg_color = imagecolorallocate($image, 255, 255, 255); imagefill($image, 0, 0, $bg_color); // 生成随机的验证码 $characters = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'; $length = mt_rand(4, 6); $code = ''; for ($i = 0; $i < $length; $i++) { $code .= $characters[mt_rand(0, strlen($characters) - 1)]; } // 将验证码存储在会话中 $_SESSION['captcha_code'] = $code; // 设置文本颜色 $text_color = imagecolorallocate($image, 0, 0, 0); // 在图像中绘制验证码 $font = __DIR__ . '/arial.ttf'; imagettftext($image, 30, 0, 10, 40, $text_color, $font, $code); // 发送图像头信息 header('Content-Type: image/png'); // 将图像呈现给用户 imagepng($image); imagedestroy($image); ?>
Inこの PHP ファイルを作成するには、まずセッションを開始して、検証コードを保存してアクセスできるようにします。次に、指定された幅と高さの空の画像を作成し、背景色を白に設定しました。次に、ランダムな文字を含む検証コードを生成し、セッションに保存します。
次に、テキストの色を黒に設定し、選択したフォントを使用して画像上に認証コードのテキストを描画します。最後に、画像ヘッダー情報を送信し、画像をユーザーに表示します。
ステップ 3: 検証コードをテストして使用する
これで、ブラウザでindex.php ファイルを開いて、生成された検証コードを表示できます。ページが更新されるたびに、異なる検証コードが生成されます。
フォームでは、ユーザーが入力した確認コードがセッションに保存されている確認コードと一致するかどうかを確認することで、ユーザーの身元を確認できます。
次のコードを使用して、検証コードの正確性を確認できます。
session_start(); if (isset($_POST['submit'])) { if ($_POST['captcha'] == $_SESSION['captcha_code']) { // 验证码正确,执行所需操作 } else { echo '验证码错误!'; } }
ここでは、この記事の内容にはフォーム部分は含まれておらず、検証コードが正しいかどうか。
PHP と GD ライブラリを使用すると、Web アプリケーションを保護するための動的な画像検証コードを簡単に作成できます。これらの検証コードは、実際のユーザーを特定し、自動攻撃を防ぐ上で重要な役割を果たします。
以上がPHPとGDライブラリを使用して動的画像検証コードを作成する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。