ホームページ バックエンド開発 PHPチュートリアル PHP開発:画像検証コード機能の実装方法

PHP開発:画像検証コード機能の実装方法

Sep 20, 2023 pm 04:00 PM
PHP開発 機能の実装 画像認証コード

PHP開発:画像検証コード機能の実装方法

#PHP 開発:画像認証コード機能の実装方法

WEB 開発では、ロボットや悪意のある攻撃を防ぐために、認証コードを使用する必要があることがよくあります。ユーザーの身元を確認するため。その中で、画像認証コードは一般的なタイプの認証コードであり、ユーザーを効果的に識別できるだけでなく、ユーザーエクスペリエンスも向上させます。この記事では、PHP を使用して画像検証コード機能を実装する方法と具体的なコード例を紹介します。

1. 検証コード イメージの生成

最初に、ランダムな文字を含む検証コード イメージを生成する必要があります。 PHP には、画像を簡単に生成するための GD ライブラリが提供されています。以下は、検証コード イメージを生成する関数の例です。

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 は、検証コード イメージを生成するために使用され、関数の戻り値として検証コード文字列を返します。価値。

2. 確認コードの画像を表示してユーザー入力を確認する

確認コードを表示するページで、

PHP開発:画像検証コード機能の実装方法 タグを付け、session を使用して検証コードを保存します。

session_start();
$captcha = generateCaptchaImage();
$_SESSION['captcha'] = $captcha;
ログイン後にコピー

確認コード入力ボックスと送信ボタンを作成する:

<form action="verify.php" method="POST">
  <img src="/static/imghw/default1.png"  data-src="captcha.php"  class="lazy" 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 サイトの他の関連記事を参照してください。

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

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Google Chrome で認証コードの画像が表示されない場合はどうすればよいですか? Chrome ブラウザで認証コードが表示されません。 Google Chrome で認証コードの画像が表示されない場合はどうすればよいですか? Chrome ブラウザで認証コードが表示されません。 Mar 13, 2024 pm 08:55 PM

Google Chrome で認証コードの画像が表示されない場合はどうすればよいですか? Google Chrome を使用して Web ページにログインするために確認コードが必要になる場合があります。一部のユーザーは、画像検証コードを使用すると、Google Chrome で画像のコンテンツが適切に表示されないことに気づきます。何をすべきでしょうか? Google Chromeの認証コードが表示されない場合の対処法を以下のエディターでご紹介しますので、皆様のお役に立てれば幸いです!方法の紹介: 1. ソフトウェアに入り、右上隅の「詳細」ボタンをクリックし、下のオプションリストで「設定」を選択してに入ります。 2. 新しいインターフェースに入ったら、左側の「プライバシー設定とセキュリティ」オプションをクリックします。 3. 次に、右側の「Web サイト設定」をクリックします。

Laravelを使用して画像処理機能を実装する方法 Laravelを使用して画像処理機能を実装する方法 Nov 04, 2023 pm 12:46 PM

Laravelを使用して画像処理機能を実装するには、具体的なコード例が必要ですが、インターネットの発達に伴い、画像処理はWebサイト開発に欠かせないものとなっています。 Laravel は、画像を処理するための便利なツールを多数提供する人気のある PHP フレームワークです。この記事では、Laravelを使って画像処理機能を実装する方法と具体的なコード例を紹介します。 LaravelInterventionImageInterven をインストールする

PHP開発でMemcacheを使用するにはどうすればよいですか? PHP開発でMemcacheを使用するにはどうすればよいですか? Nov 07, 2023 pm 12:49 PM

Web 開発では、Web サイトのパフォーマンスと応答速度を向上させるためにキャッシュ テクノロジを使用する必要があることがよくあります。 Memcache は、あらゆる種類のデータをキャッシュでき、高い同時実行性と高可用性をサポートする一般的なキャッシュ テクノロジです。この記事では、PHP 開発で Memcache を使用する方法を紹介し、具体的なコード例を示します。 1. Memcache のインストール Memcache を使用するには、まずサーバーに Memcache 拡張機能をインストールする必要があります。 CentOS オペレーティング システムでは、次のコマンドを使用できます。

uniappを使用して画像回転機能を実装する uniappを使用して画像回転機能を実装する Nov 21, 2023 am 11:58 AM

uniapp を使用して画像回転機能を実装する モバイルアプリケーション開発では、写真を撮った後に角度を調整する必要がある場合や、撮影後にカメラを回転させたような効果を得る必要がある場合など、画像を回転する必要があるシナリオに遭遇することがよくあります。写真が達成されました。この記事では、uniapp フレームワークを使用して画像回転機能を実装する方法と具体的なコード例を紹介します。 uniapp は、Vue.js をベースとしたクロスプラットフォーム開発フレームワークで、iOS、Android、H5、その他のプラットフォーム向けのアプリケーションを同時に開発および公開できます。ユニアプリで実装

Hotcoin Global 取引所に登録するにはどうすればよいですか? Hotcoin Global アプリのダウンロード方法は? Hotcoin Global 取引所に登録するにはどうすればよいですか? Hotcoin Global アプリのダウンロード方法は? Aug 16, 2024 pm 05:18 PM

HotcoinGlobal Exchange の登録方法: 公式 Web サイトにアクセス: https://www.hotcoin.global/ 登録方法を選択: 電子メールまたは携帯電話番号 登録情報 (電子メールまたは携帯電話番号、パスワード、確認コード) を入力 同意するユーザー規約に同意し、認証コードを取得します。 認証コードを入力して登録を完了します。

Node.js開発:ユーザー権限管理機能の実装方法 Node.js開発:ユーザー権限管理機能の実装方法 Nov 08, 2023 am 09:17 AM

タイトル: Node.js 開発: ユーザー権利管理機能の実装とコード例 要約: Web アプリケーションとシステムの複雑さが増すにつれて、ユーザー権利管理は無視できない重要な機能になっています。この記事では、Node.js開発におけるユーザー権限管理機能の実装方法と具体的なコード例を紹介します。はじめに: Node.js は、効率的で軽量な開発プラットフォームとして、幅広いアプリケーション シナリオを備えています。多くの Node.js アプリケーションの開発では、ユーザー権限管理が不可欠な機能となることがよくあります。

PHP 開発でバージョン管理とコードコラボレーションを実装するにはどうすればよいですか? PHP 開発でバージョン管理とコードコラボレーションを実装するにはどうすればよいですか? Nov 02, 2023 pm 01:35 PM

PHP 開発でバージョン管理とコードコラボレーションを実装するにはどうすればよいですか?インターネットとソフトウェア産業の急速な発展に伴い、ソフトウェア開発におけるバージョン管理とコードのコラボレーションがますます重要になってきています。独立した開発者であっても、チーム開発者であっても、コードの変更を管理し、共同作業を行うためには効果的なバージョン管理システムが必要です。 PHP 開発では、Git や SVN など、一般的に使用されるバージョン管理システムがいくつかあります。この記事では、PHP 開発におけるバージョン管理とコード共同作業にこれらのツールを使用する方法を紹介します。最初のステップは自分に合ったものを選ぶことです

確固たる原則と、それらがPHP開発にどのように適用されるかを説明してください。 確固たる原則と、それらがPHP開発にどのように適用されるかを説明してください。 Apr 03, 2025 am 12:04 AM

PHP開発における固体原理の適用には、次のものが含まれます。1。単一責任原則(SRP):各クラスは1つの機能のみを担当します。 2。オープンおよびクローズ原理(OCP):変更は、変更ではなく拡張によって達成されます。 3。Lischの代替原則(LSP):サブクラスは、プログラムの精度に影響を与えることなく、基本クラスを置き換えることができます。 4。インターフェイス分離原理(ISP):依存関係や未使用の方法を避けるために、細粒インターフェイスを使用します。 5。依存関係の反転原理(DIP):高レベルのモジュールと低レベルのモジュールは抽象化に依存し、依存関係噴射を通じて実装されます。

See all articles