ホームページ  >  記事  >  バックエンド開発  >  PHP と GD ライブラリを使用してカラフルな検証コード画像を生成するためのヒント

PHP と GD ライブラリを使用してカラフルな検証コード画像を生成するためのヒント

WBOY
WBOYオリジナル
2023-07-14 23:05:141607ブラウズ

PHP および GD ライブラリを使用して色付きの検証コード イメージを生成するためのヒント

はじめに:
検証コードは一般的なネットワーク セキュリティ テクノロジです。ユーザーのログイン時、登​​録時、またはフォームの送信時に確認コードの入力を要求することで、ロボットや悪意のあるプログラムによる自動攻撃を効果的に防ぐことができます。この記事では、PHP および GD ライブラリを使用してカラフルな検証コード画像を生成するテクニックを紹介します。これは、開発者が検証コードを作成する際に、ある程度の認識性と芸術性を追加するのに役立ちます。

1. 環境の準備

開始する前に、開発環境に PHP および GD ライブラリがインストールされていることを確認してください。 GD ライブラリをインストールするには、ターミナルで次のコマンドを入力します。

sudo apt-get update
sudo apt-get install php7.4-gd

2. 干渉ラインを生成します

検証コードを生成する前に、まず干渉ラインを生成してコードの複雑さと信頼性を高めます。確認コード。以下は、干渉ラインを生成するサンプル コードです:

// 创建一个画布
$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);

3. 検証コードの生成

次に、検証コードの生成を開始できます。以下は、4 桁の確認コードを生成するサンプル コードです。

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);

4. 確認コードを使用する

フォームに、ユーザーが確認コードを入力して確認するための入力ボックスを追加できます。ユーザーが入力した検証コードが、以前に生成された検証コードと一致するかどうかをバックグラウンドで確認します。以下は簡単な例です:

<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 ライブラリの使用方法を紹介します。コード 画像トリックは、気を散らす線を生成し、フォントの色をランダム化することにより、CAPTCHA の複雑さと可読性を高めます。これらのヒントが、開発者がより安全で美しいキャプチャを作成するのに役立つことを願っています。 ###

以上がPHP と GD ライブラリを使用してカラフルな検証コード画像を生成するためのヒントの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。