ホームページ バックエンド開発 PHPチュートリアル PHPを使用して確認コードイメージを作成するにはどうすればよいですか?

PHPを使用して確認コードイメージを作成するにはどうすればよいですか?

Sep 13, 2023 am 11:40 AM
php 検証コード 作成する

PHPを使用して確認コードイメージを作成するにはどうすればよいですか?

PHP を使用して検証コード イメージを作成するにはどうすればよいですか?

検証コード (CAPTCHA) は、ユーザーが機械ではなく人間であるかどうかを検証するために一般的に使用される方法です。 Web サイトでは、ログイン、登録、コメントなどの操作を完了するために、画像上に表示されるランダムな文字や数字を入力する必要がある認証コードの画像をよく見かけます。この記事では、PHP を使用して検証コード イメージを作成する方法と、具体的なコード例を紹介します。

1. PHP GD ライブラリ

検証コード イメージを作成するには、PHP の GD ライブラリを使用する必要があります。 GDライブラリは、画像処理用の拡張ライブラリであり、画像の作成、加工、出力までの一連の機能を提供します。まず、GD ライブラリがサーバー上で有効になっていることを確認する必要があります。コード内の phpinfo() 関数を実行すると、GD ライブラリの設定を確認できます。

GD ライブラリが有効になっている場合は、検証コード イメージの作成を開始できます。

2. 検証コード イメージの作成

検証コード イメージを作成する主な手順には、ランダムな文字列の生成、画像の作成、干渉線とノイズ ポイントの描画、画像の出力が含まれます。

  1. ランダムな文字列を生成する

まず、検証コードの内容としてランダムな文字列を生成する必要があります。以下に示すように、mt_rand() 関数を使用して、指定した長さのランダムな数字または文字のシーケンスを生成できます。

$length = 6; // 验证码长度
$chars = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
$code = '';
for ($i = 0; $i < $length; $i++) {
    $code .= $chars[mt_rand(0, strlen($chars) - 1)];
}
ログイン後にコピー
  1. 画像の作成

次に、空の確認コード イメージを作成する必要があります。以下に示すように、imagecreate() 関数を使用して、指定した幅と高さの画像を作成できます。

$width = 120; // 图片宽度
$height = 40; // 图片高度
$image = imagecreate($width, $height);
ログイン後にコピー
  1. 背景色とテキストの色を設定します

us 次のように、imagecolorallocate() 関数を使用して画像の背景とテキストの色を設定できます。

$bg_color = imagecolorallocate($image, 255, 255, 255); // 白色背景
$text_color = imagecolorallocate($image, 0, 0, 0); // 黑色文字
ログイン後にコピー
  1. Draw text

Use imagestring ()この関数は、以下に示すように、検証コード イメージ上にランダムな文字列を描画します。

$font_size = 18; // 文字大小
$x = ($width - strlen($code) * $font_size) / 2; // 文字起始位置横坐标
$y = ($height - $font_size) / 2; // 文字起始位置纵坐标
imagestring($image, $font_size, $x, $y, $code, $text_color);
ログイン後にコピー
  1. 干渉線とノイズ ポイントを描画します

検証コードの安全性のパフォーマンスを向上させるために、画像上に干渉線やノイズを描画することができます。 imagesetpixel() 関数を使用してノイズ ポイントを描画し、imageline() 関数を使用して干渉線を描画できます。

for ($i = 0; $i < 100; $i++) {
    $x = mt_rand(0, $width - 1);
    $y = mt_rand(0, $height - 1);
    imagesetpixel($image, $x, $y, $text_color);
}

for ($i = 0; $i < 5; $i++) {
    $x1 = mt_rand(0, $width / 2);
    $y1 = mt_rand(0, $height - 1);
    $x2 = mt_rand($width / 2, $width - 1);
    $y2 = mt_rand(0, $height - 1);
    imageline($image, $x1, $y1, $x2, $y2, $text_color);
}
ログイン後にコピー
  1. 出力画像

最後に、検証コードの画像をブラウザに出力する必要があります。 header() 関数を使用して画像の Content-Type を設定し、imagejpeg() 関数を使用して画像をブラウザに出力できます。

header('Content-Type: image/jpeg');
imagejpeg($image);
ログイン後にコピー
  1. 画像リソースの破棄

サーバー メモリを節約するために、画像出力が完了した後は必ず画像リソースを破棄してください。

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

3. 完全なコード例

以下は、検証コード イメージを作成するための完全な PHP コード例です:

ログイン後にコピー

上記のコードを captcha.php として保存し、渡します。ブラウザでファイルにアクセスすると、生成された検証コードの画像が表示されます。

概要

この記事では、GD ライブラリと PHP を使用して検証コード イメージを作成する方法を紹介し、具体的なコード例を示します。認証コードイメージの生成原理を理解することで、実際のビジネスニーズに応じたカスタマイズ開発を実施し、ユーザー認証の安全性と信頼性を向上させることができます。この記事がお役に立てば幸いです!

以上が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)

Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド Dec 24, 2024 pm 04:42 PM

PHP 8.4 では、いくつかの新機能、セキュリティの改善、パフォーマンスの改善が行われ、かなりの量の機能の非推奨と削除が行われています。 このガイドでは、Ubuntu、Debian、またはその派生版に PHP 8.4 をインストールする方法、または PHP 8.4 にアップグレードする方法について説明します。

CakePHP の日付と時刻 CakePHP の日付と時刻 Sep 10, 2024 pm 05:27 PM

Cakephp4 で日付と時刻を操作するには、利用可能な FrozenTime クラスを利用します。

CakePHP について話し合う CakePHP について話し合う Sep 10, 2024 pm 05:28 PM

CakePHP は、PHP 用のオープンソース フレームワークです。これは、アプリケーションの開発、展開、保守をより簡単にすることを目的としています。 CakePHP は、強力かつ理解しやすい MVC のようなアーキテクチャに基づいています。モデル、ビュー、コントローラー

CakePHP ファイルのアップロード CakePHP ファイルのアップロード Sep 10, 2024 pm 05:27 PM

ファイルのアップロードを行うには、フォーム ヘルパーを使用します。ここではファイルアップロードの例を示します。

CakePHP バリデータの作成 CakePHP バリデータの作成 Sep 10, 2024 pm 05:26 PM

Validator は、コントローラーに次の 2 行を追加することで作成できます。

CakePHP のロギング CakePHP のロギング Sep 10, 2024 pm 05:26 PM

CakePHP へのログインは非常に簡単な作業です。使用する関数は 1 つだけです。 cronjob などのバックグラウンド プロセスのエラー、例外、ユーザー アクティビティ、ユーザーが実行したアクションをログに記録できます。 CakePHP でのデータのログ記録は簡単です。 log()関数が提供されています

PHP 開発用に Visual Studio Code (VS Code) をセットアップする方法 PHP 開発用に Visual Studio Code (VS Code) をセットアップする方法 Dec 20, 2024 am 11:31 AM

Visual Studio Code (VS Code とも呼ばれる) は、すべての主要なオペレーティング システムで利用できる無料のソース コード エディター (統合開発環境 (IDE)) です。 多くのプログラミング言語の拡張機能の大規模なコレクションを備えた VS Code は、

CakePHP クイックガイド CakePHP クイックガイド Sep 10, 2024 pm 05:27 PM

CakePHP はオープンソースの MVC フレームワークです。これにより、アプリケーションの開発、展開、保守がはるかに簡単になります。 CakePHP には、最も一般的なタスクの過負荷を軽減するためのライブラリが多数あります。

See all articles