ホームページ >バックエンド開発 >PHPチュートリアル >PHP開発:画像検証コード機能の実装方法
function generateCaptchaImage($length = 4, $width = 120, $height = 40, $font = 'path/to/font.ttf'){ $image = imagecreatetruecolor($width, $height); $bgColor = imagecolorallocate($image, 255, 255, 255); $textColor = imagecolorallocate($image, 0, 0, 0); $code = generateRandomCode($length); // 生成随机验证码 imagefill($image, 0, 0, $bgColor); imagettftext($image, 20, 0, 10, 30, $textColor, $font, $code); // 在图片上写入验证码 // 添加干扰线 for ($i = 0; $i < 5; $i++) { $color = imagecolorallocate($image, rand(0, 255), rand(0, 255), rand(0, 255)); imageline($image, rand(0, $width), rand(0, $height), rand(0, $width), rand(0, $height), $color); } // 输出图像 header('Content-type: image/png'); imagepng($image); imagedestroy($image); return $code; } function generateRandomCode($length = 4){ $characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890'; $code = ''; for ($i = 0; $i < $length; $i++) { $code .= $characters[rand(0, strlen($characters) - 1)]; } return $code; }上記の関数
generateCaptchaImage は、検証コード イメージを生成するために使用され、関数の戻り値として検証コード文字列を返します。価値。
タグを付け、session を使用して検証コードを保存します。
session_start(); $captcha = generateCaptchaImage(); $_SESSION['captcha'] = $captcha;確認コード入力ボックスと送信ボタンを作成する:
<form action="verify.php" method="POST"> <img src="captcha.php" alt="captcha image"> <input type="text" name="captcha" placeholder="请输入验证码"> <button type="submit">提交</button> </form>ユーザーが入力した確認コードを確認する:
session_start(); $captcha = $_SESSION['captcha']; if(isset($_POST['captcha']) && $_POST['captcha'] == $captcha){ // 验证成功 echo "验证码输入正确!"; } else { // 验证失败 echo "验证码输入错误!"; }3. 確認コードの確認と有効期限処理
検証コードのセキュリティを強化するために、有効期限と検証コードの処理を追加することもできます。以下は、検証コードの検証例の拡張バージョンです。
session_start(); if(isset($_POST['captcha']) && isset($_SESSION['captcha'])){ $captcha = $_SESSION['captcha']; $inputCaptcha = $_POST['captcha']; if(time() - $_SESSION['captcha_time'] > 300){ // 验证码过期时间为5分钟 echo "验证码已过期,请重新输入!"; return; } if(strtolower($inputCaptcha) === strtolower($captcha)){ echo "验证码输入正确!"; } else { echo "验证码输入错误!"; } } else{ echo "请输入验证码!"; }検証コードを生成すると、現在の時刻も
$_SESSION に保存されます:
session_start(); $captcha = generateCaptchaImage(); $_SESSION['captcha'] = $captcha; $_SESSION['captcha_time'] = time();上記のコードは、有効期限を確認し、確認コードを確認した後、対応するプロンプト情報が出力されます。 概要: 上記の手順により、PHP を使用して画像検証コード関数を実装できます。まず、ランダムな文字を含む検証コード画像が生成され、ページに表示されます。次に、ユーザーが入力した認証コードとサーバーに保存されている認証コードを比較し、入力が正しいかどうかを判定します。同時に、認証コードのセキュリティを高めるために、有効期限を設定したり、認証コードの処理を追加したりすることができます。認証コード機能の実装により、ユーザー登録やログインなどの機密性の高い操作に使用でき、システムのセキュリティとユーザーエクスペリエンスが向上します。 注: 上記のコードが正常に実行されるためには、GD ライブラリが正しくインストールされていることを確認する必要があります。
以上がPHP開発:画像検証コード機能の実装方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。