ネットワークセキュリティの認識の改善により、悪意のある操作と自動提出を防ぐために、Web形式で検証コードが広く使用されています。検証コードを通じて、ユーザーの操作が実際の動作であるかどうかを効果的に識別できます。この記事では、PHPを使用して検証コードを生成し、それらをフォームに統合して検証を完全に統合する方法について説明します。
検証コードは通常、ランダム文字のセットで構成されています。以下は、PHPを介してランダム検証コードを生成し、セッションに保存する例コードです。
<?php session_start(); // 有効にする Session // 検証コードの長さを定義します $length = 4; // 利用可能な文字を定義します $str = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'; $code = ''; // ランダム検証コード文字列を生成します for ($i = 0; $i < $length; $i++) { $code .= $str[rand(0, strlen($str) - 1)]; } // 保存Session,小文字フォームに変換します $_SESSION['code'] = strtolower($code); ?>
次に、GDライブラリを使用して、検証コード文字列を画像に描画します。
<?php // 検証コードの画像サイズを設定します $width = 120; $height = 40; // キャンバスを作成します $image = imagecreatetruecolor($width, $height); // 背景色を設定します $bgColor = imagecolorallocate($image, 255, 255, 255); imagefilledrectangle($image, 0, 0, $width, $height, $bgColor); // テキストの色を設定します $textColor = imagecolorallocate($image, 0, 0, 0); // 検証コード文字列を写真に書き込みます imagettftext($image, 20, 0, 10, 30, $textColor, 'font.ttf', $code); // ブラウザに写真を出力します header('Content-type:image/png'); imagepng($image); // 無料のリソース imagedestroy($image); ?>
上記のスクリプトを実行した後、検証コード文字を備えたPNG画像が生成されます。
検証コード入力ボックスをHTMLフォームに追加し、検証コード画像を引用します。
ユーザーがフォームを送信すると、正しい検証コードを入力する必要があり、フォーム処理スクリプトが検証します。
フォーム処理スクリプト `handleform.php`で、セッションを通じてユーザーが入力した検証コードを確認します。
<?php session_start(); // ユーザーが入力した検証コードを取得し、小文字に変換します $code = strtolower($_POST['code']); $sessionCode = strtolower($_SESSION['code']); // 比較検証コード if ($code !== $sessionCode) { echo '検証コード入力エラー'; exit; } // 他のフォームデータの処理を続けます // ... ?>
検証コードが一致する場合、システムはエラーメッセージをプロンプトします。試合が成功した場合、その後のフォーム処理ロジックは引き続き実行されます。
上記の手順を通じて、PHPを使用して検証コード文字列を生成し、検証コード写真を作成し、検証のためにフォームと組み合わせる完全なプロセスを実装しました。この方法は、Webサイトのインタラクティブなセキュリティを効果的に改善し、フォームが自動スクリプトによって乱用されるのを防ぐことができます。
実際のプロジェクトでは、開発者は検証コードのキャラクタースタイル、画像干渉要素、フォントサイズなどをさらに最適化し、それにより検証コードの認識と攻撃防止機能を改善できます。