PHP および GD ライブラリを使用して色付きの検証コード イメージを生成するためのヒント
はじめに:
検証コードは一般的なネットワーク セキュリティ テクノロジです。ユーザーのログイン時、登録時、またはフォームの送信時に確認コードの入力を要求することで、ロボットや悪意のあるプログラムによる自動攻撃を効果的に防ぐことができます。この記事では、PHP および GD ライブラリを使用してカラフルな検証コード画像を生成するテクニックを紹介します。これは、開発者が検証コードを作成する際に、ある程度の認識性と芸術性を追加するのに役立ちます。
1. 環境の準備
sudo apt-get update sudo apt-get install php7.4-gd
// 创建一个画布 $width = 120; $height = 40; $image = imagecreatetruecolor($width, $height); // 生成两条随机干扰线 for ($i = 0; $i < 2; $i++) { $lineColor = imagecolorallocate($image, mt_rand(0, 255), mt_rand(0, 255), mt_rand(0, 255)); imageline($image, 0, mt_rand(0, $height), $width, mt_rand(0, $height), $lineColor); } // 输出图片 header("Content-type: image/png"); imagepng($image); imagedestroy($image);
session_start(); $width = 120; $height = 40; $length = 4; $font = 'path/to/your/font.ttf'; // 设置字体文件的路径 // 创建一个画布 $image = imagecreatetruecolor($width, $height); // 设置背景颜色 $bgColor = imagecolorallocate($image, 255, 255, 255); imagefilledrectangle($image, 0, 0, $width, $height, $bgColor); // 生成四位数字验证码 $code = ''; for ($i = 0; $i < $length; $i++) { $textColor = imagecolorallocate($image, mt_rand(0, 200), mt_rand(0, 200), mt_rand(0, 200)); $digit = mt_rand(0, 9); $code .= $digit; imagettftext($image, 20, mt_rand(-30, 30), ($width / $length) * $i + 10, ($height + 20) / 2, $textColor, $font, $digit); } // 保存验证码到session中 $_SESSION['captcha'] = $code; // 输出图片 header("Content-type: image/png"); imagepng($image); imagedestroy($image);
<form action="submit.php" method="post"> <label for="captcha">验证码:</label> <input type="text" id="captcha" name="captcha" required> <img src="captcha.php" alt="验证码"> <input type="submit" value="提交"> </form>そして submit.php の検証コードを検証します:
session_start(); if ($_POST['captcha'] == $_SESSION['captcha']) { // 验证码正确,进行后续操作 } else { // 验证码错误,给出相应提示 }
以上がPHP と GD ライブラリを使用してカラフルな検証コード画像を生成するためのヒントの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。