ホームページ >バックエンド開発 >PHPチュートリアル >PHP は画像検証コードの生成と検証を実装します
PHP は画像検証コードの生成と検証を実装します
Web サイト開発では、悪意のあるマシンによる攻撃や自動登録を防ぐために、画像検証コードを使用することがよくあります。確認する。この記事では、PHP を使用して画像検証コードを生成および検証する方法と、具体的なコード例を紹介します。
画像検証コードを生成する鍵は、ランダムな検証コード文字列を生成し、それを画像上に描画することです。以下は、画像検証コードを生成するサンプル コードです。
<?php session_start(); // 声明图片尺寸 $image_width = 100; $image_height = 40; // 创建图片资源 $image = imagecreatetruecolor($image_width, $image_height); // 生成背景颜色 $bg_color = imagecolorallocate($image, mt_rand(200, 255), mt_rand(200, 255), mt_rand(200, 255)); imagefill($image, 0, 0, $bg_color); // 生成验证码字符串 $chars = 'ABCDEFGHJKLMNPQRSTUVWXYZabcdefghjkmnpqrstuvwxyz23456789'; $code = ''; for ($i = 0; $i < 4; $i++) { $code .= $chars[mt_rand(0, strlen($chars) - 1)]; } // 将验证码字符串保存到session中,用于验证 $_SESSION['captcha'] = $code; // 绘制验证码文字 $font_file = 'path_to_your_font.ttf'; // 替换为你自己的字体文件路径 $text_color = imagecolorallocate($image, 0, 0, 0); // 文字颜色为黑色 imagettftext($image, 20, 0, 10, 30, $text_color, $font_file, $code); // 输出图片 header('Content-Type: image/png'); imagepng($image); imagedestroy($image); ?>
上記のコードでは、まず imagecreatetruecolor
関数を使用して、指定された幅と高さの画像リソースを作成し、次に # を使用します。 ##imagecolorallocateこの関数は背景色を生成して画像全体を塗りつぶし、
imagettftext 関数を使用して画像上の指定された位置に検証コード文字列を描画します。最後に、生成された画像は
imagepng 関数を通じて出力されます。
<?php session_start(); // 获取用户输入的验证码字符串 $user_input = $_POST['captcha']; // 获取保存在session中的验证码字符串 $server_code = $_SESSION['captcha']; // 验证用户输入的验证码与保存的验证码是否一致 if (strcasecmp($user_input, $server_code) === 0) { // 验证码正确,执行相应的操作 // ... echo "验证码正确"; } else { // 验证码错误,提示用户重新输入 echo "验证码错误"; } ?>上記のコードでは、まず
session_start 関数を使用してセッションを開き、次に ## を通じてユーザーを取得します。 #$_POST
スーパー グローバル配列 検証コード文字列を入力し、$_SESSION
スーパー グローバル配列を使用して、セッションに保存されている検証コード文字列を取得します。最後に、strcasecmp
関数を使用して 2 つの文字列が等しいかどうかを比較します。等しい場合は、検証コードが正しいことを意味し、対応する操作が実行されます。等しくない場合は、これは、確認コードが間違っているため、ユーザーに再入力を求めるメッセージが表示されることを意味します。 上記の 2 つのコードにより、イメージ検証コードを生成して検証できます。画像検証コードを生成するコードを、
などの別のファイルとして保存できます。検証コードを生成する必要がある場合は、そのファイルに直接アクセスできます。画像検証コードを検証するためのコードは、特定のフォーム送信処理ページに配置できます。 この記事のサンプル コードが、イメージ検証コードの生成と検証に役立つことを願っています。もちろん、実際のアプリケーションでは、干渉線の追加や検証コードの暗号化など、セキュリティ対策を追加する必要がある場合もあります。
以上がPHP は画像検証コードの生成と検証を実装しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。