PHPでランダムな認証コードを設定する方法を詳しく解説した記事

PHPz
リリース: 2023-04-11 13:56:01
オリジナル
1596 人が閲覧しました

ランダム確認コードは、多くの Web サイトの登録、ログイン、パスワード取得機能で広く使用されています。悪意のある攻撃やロボット攻撃を効果的に防止し、Web サイトのセキュリティを強化します。人気のあるサーバー スクリプト言語として、PHP はランダムな検証コードを簡単に実装できます。

以下では、PHP を使用してランダムな検証コードを生成する方法を詳しく紹介します。

  1. 乱数を生成する

まず、乱数を生成する必要があります。これは、PHP の rand 関数を使用して実現できます。 rand 関数は、開始値と終了値の 2 つのパラメータを受け入れます。たとえば、6 桁の乱数を生成したい場合は、次のコードを使用できます:

$code = rand(100000, 999999);
ログイン後にコピー

これにより、100000 ~ 999999 の整数が生成されます。

  1. 検証コード画像の作成

次に、画像上に検証コードを描画する必要があります。 PHPのGDライブラリを利用して画像を作成できます。

まず、空の画像を作成する必要があります:

$image = imagecreate(100, 50);
ログイン後にコピー

これにより、100x50 の空の画像が作成されます。

次に、画像の背景色とフォントの色を指定する必要があります:

$bg_color = imagecolorallocate($image, 255, 255, 255); // 白色
$text_color = imagecolorallocate($image, 0, 0, 0); // 黑色
ログイン後にコピー

これにより、画像の背景色とフォントの色がそれぞれ指定されます。

次に、imagestring 関数を使用して画像上に検証コードを描画します。

imagestring($image, 5, 20, 15, $code, $text_color);
ログイン後にコピー

これにより、画像の (20,15) 位置に検証コード文字列が描画されます。

  1. 検証コード画像の出力

検証コード画像を生成したので、ブラウザに出力する必要があります。

まず、出力するものが画像であることをブラウザに伝える必要があります:

header('Content-Type: image/png');
ログイン後にコピー

次に、imagepng 関数を使用して画像を出力します:

imagepng($image);
ログイン後にコピー

完了 コードは次のとおりです。

$code = rand(100000, 999999);

$image = imagecreate(100, 50);
$bg_color = imagecolorallocate($image, 255, 255, 255); // 白色
$text_color = imagecolorallocate($image, 0, 0, 0); // 黑色
imagestring($image, 5, 20, 15, $code, $text_color);

header('Content-Type: image/png');
imagepng($image);
ログイン後にコピー

上記のコードは、6 桁の乱数検証コード画像を生成し、ブラウザに出力します。

  1. Web ページでの確認コードの使用

最後に、生成された確認コードの画像を Web ページに埋め込む必要があります。

次のコードを通じて検証コード イメージを表示できます:

<img src="captcha.php" />
ログイン後にコピー

これにより、Web ページに検証コード イメージが表示されます。captcha.php は、生成される PHP ファイルの名前です。確認コードの画像。

ユーザーが確認コードを入力してフォームを送信すると、ユーザーが入力した確認コードが正しいかどうかを確認する必要があります。これは、次のコードで確認できます。

session_start();

if (isset($_POST['code']) && $_POST['code'] == $_SESSION['code']) {
    // 验证码正确,继续执行
} else {
    // 验证码错误,给出错误提示
}
ログイン後にコピー

これは、送信されたフォームに code という名前のパラメータが含まれているかどうかを確認し、セッションに保存されている確認コードと比較します。入力された検証コードがセッション内の検証コードと一致する場合、ユーザーは関連操作の実行を続行できますが、一致しない場合はエラー メッセージが表示されます。

まとめ

PHP を使用してランダムな検証コードを生成することは複雑ではなく、単純な乱数生成と GD ライブラリを使用して画像を描画するだけです。検証コードを使用することで、Web サイトのセキュリティと信頼性を効果的に向上させることができます。

以上がPHPでランダムな認証コードを設定する方法を詳しく解説した記事の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート