検索
ホームページバックエンド開発PHPチュートリアルPHP 生成イメージ検証コードの実践ノート_PHP チュートリアル

PHP 生成イメージ検証コードの実践ノート_PHP チュートリアル

Jul 13, 2016 am 10:46 AM
phpsessionグラフィックス写真生成するコードノート練習する必要確認する

PHP は、PHP gd ライブラリとセッションを使用してグラフィックPHP 生成イメージ検証コードの実践ノート_PHP チュートリアルを生成します。この方法では、gd ライブラリがユーザーに表示する画像を生成し、ユーザーがPHP 生成イメージ検証コードの実践ノート_PHP チュートリアルを入力してサーバーに送信し、その値をセッションに保存します。検証のために、全体のプロセスを見てみましょう。

WindowsシステムのGDライブラリが有効になっています

php.ini ファイルで extension=php_gd2.dll を見つけて、前の「;」を削除します。

Linux システム GD ライブラリが有効になります

##コマンドを使用してGDライブラリがインストールされているかどうかを検出します

php5 -m grep -i gd
または
php -i grep -i --color gd
##GDライブラリがインストールされていない場合は、サーバーにインストールしてください
### ソースコードのインストールの場合は、パラメータを追加します
--with-gd
### Debian Linux システムの場合は、次のように apt-get を使用してインストールします
apt-get インストール php5-gd
### CentOS システムの場合は、次のように yum を使用してインストールします
php-gdをyumインストールします
### Suse ベースの Linux システムの場合は、次のように yast を使用してインストールします
yast -i php5_gd

これで、php GD ライブラリの準備ができました。次に、php がグラフィックPHP 生成イメージ検証コードの実践ノート_PHP チュートリアル画像を生成する例を見てみましょう。

まず最初に、PHP 生成イメージ検証コードの実践ノート_PHP チュートリアルの簡単な概念をご紹介します。

1. 認証コードの紹介

認証コードは、ページ上に画像の形で表示されるランダムに生成された数字または記号の文字列であり、ユーザーは送信操作を実行するときに画像上の文字を肉眼で識別することができます。入力と送信を同時に行う必要があります。機能は検証に成功した後にのみ使用できます。送信された文字がサーバー セッションに保存されている文字と異なる場合、送信された情報は無効とみなされます。自動プログラムによる画像の分析や解析を防ぐために、通常、一部のインターフェロンが画像上でランダムに生成されたり、文字が歪んだりして、自動認識がより困難になります。ユーザーが送信した後、ユーザーが入力したPHP 生成イメージ検証コードの実践ノート_PHP チュートリアルがセッションに保存された文字列と比較され、検証効果が得られます。ユーザーがフォームを送信すると、フォームを受信するページは、サーバーによって生成されたセッションがクライアントによって送信されたフォーム値と一致するかどうかを確認します。 Consistent はデータベースの読み取りも書き込みも行いません。セッションにより、少量のユーザー情報がサーバーに保存されます。この情報は一時的なもので、ユーザーが Web サイトを離れると自動的に削除されます。

2.PHP実装プロセス
PHP Web ページ ファイルは、一般的な HTML Web ページ ファイルとして扱われ、編集する場合は、従来の HTML 編集方法を使用して作成できます。 PHP は使用時にシステム リソースをほとんど消費せず、オープン ソース コードがあり、無料であるため、現在、PHP はより多くの Web サイトで使用されています。以下は、PHP でPHP 生成イメージ検証コードの実践ノート_PHP チュートリアルを実装するプロセスです。

(1) 乱数を生成する
画像に表示する数字と文字を定義します。

ループ内で 4 つの定義された文字と数字をランダムに選択します。 数字をつなげて得られる文字の総数は 4 つです。 生成された数字と文字を保存し、生成された乱数をセッション変数に入れて、今後ユーザーが送信したコンテンツと比較します。



コードは次のとおりです


コードをコピー

$ aut hnum_session = ' ' $ st r = a ' bcdef ghij k l mnopqrstuv wxyz 1234567890 ' $ l = strlen( $ str) ; f or( $ i= 1 ; $ i {
;
$ num= rand( 0 , $ l- 1);
$ aut hnum_session. = $ str[ $ num];$ aut hnum_session. = $ str[ $ num];
}
$ _SESSI ON[ " authnum_session" ] ;
?>




(2) 写真を作成します
作成する画像のサイズは、イメージ作成機能を使用して決定します。
コードは次のとおりです


コードをコピー

$ i m = i magecreate( 60 , 20); ?>


(3) カラーを設定します
関数を使用して背景色を作成します;
関数を使用してフォントの色を作成します。

コードは次のとおりです コードをコピー

$ b missing = ImageColor すべての場所( $ im, 0 , 0, 0);
$white = ImageColor すべての位置( $im, 255 , 255 ,
255);
$ grey = I mageColor すべての場所 ( $ im , 200 , 200 ,
) 200);
i magefill ( $ i m , 68 , 30 , $ grey);
$ li = I mageColor すべての場所 ( $ im , 220 , 220 ,
) 220);
?>


(4)インターフェロンを追加
ユーザー入力に影響を与えずに、干渉線を追加します
干渉ピクセル。

コードは次のとおりです コードをコピー
f or( $ i= 0 ; $ i {
i imageline( $ i m , rand ( 0 , 30), rand( 0 , 21), rand( 20 , 40), rand( 0 , 21), $ li );
}
f or( $ i= 0 ; $ i {
i magesetp i xe l ( $ i m, rand( )% 70 , rand( )% 30
、$ グレー);
}
?>


(5) 画像の左上に文字を書きます
関数 i magestring を使用して、画像上に文字を書き込みます。

コードは次のとおりです コードをコピー
i magest Ring( $ i m, 5 , 12 , 5 , $ au thnu m _ ses2
シオン、$ ホワイト アイ テ);
?>


(6)出力画像
セッションオン機能をオンにしてください;
画像を出力する機能を使用します。

コードは次のとおりです コードをコピー

sessi on_start ( ) ;
私はPNG($i m);
?>

上記の確認コードは次のように結果を表示します

検証のためにPHP 生成イメージ検証コードの実践ノート_PHP チュートリアルを呼び出す必要があるページで、ユーザーがPHP 生成イメージ検証コードの実践ノート_PHP チュートリアル フォームに入力すると、システムはフォームに送信されたPHP 生成イメージ検証コードの実践ノート_PHP チュートリアル データと上記のセッション変数を比較します。それらが等しい場合、検証は正しく行われます。それらが等しくない場合は、エラーとなり、ユーザーの進行中の作業が終了し、PHP 生成イメージ検証コードの実践ノート_PHP チュートリアルを使用してユーザーの検証機能が実現されます。

無題のドキュメント

コードは次のとおりです コードをコピー




無題のドキュメント

関数refresh_code()
{
form1.imgcode.src="verifycode.php?a="+Math.random();
}
スクリプト>





PHP 生成イメージ検証コードの実践ノート_PHP チュートリアル
よく見えない場合は、
に変更します
フォーム>
声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
PHP対Python:違いを理解しますPHP対Python:違いを理解しますApr 11, 2025 am 12:15 AM

PHP and Python each have their own advantages, and the choice should be based on project requirements. 1.PHPは、シンプルな構文と高い実行効率を備えたWeb開発に適しています。 2。Pythonは、簡潔な構文とリッチライブラリを備えたデータサイエンスと機械学習に適しています。

PHP:それは死にかけていますか、それとも単に適応していますか?PHP:それは死にかけていますか、それとも単に適応していますか?Apr 11, 2025 am 12:13 AM

PHPは死にかけていませんが、常に適応して進化しています。 1)PHPは、1994年以来、新しいテクノロジーの傾向に適応するために複数のバージョンの反復を受けています。 2)現在、電子商取引、コンテンツ管理システム、その他の分野で広く使用されています。 3)PHP8は、パフォーマンスと近代化を改善するために、JITコンパイラおよびその他の機能を導入します。 4)Opcacheを使用してPSR-12標準に従って、パフォーマンスとコードの品質を最適化します。

PHPの未来:適応と革新PHPの未来:適応と革新Apr 11, 2025 am 12:01 AM

PHPの将来は、新しいテクノロジーの傾向に適応し、革新的な機能を導入することで達成されます。1)クラウドコンピューティング、コンテナ化、マイクロサービスアーキテクチャに適応し、DockerとKubernetesをサポートします。 2)パフォーマンスとデータ処理の効率を改善するために、JITコンパイラと列挙タイプを導入します。 3)パフォーマンスを継続的に最適化し、ベストプラクティスを促進します。

PHPの抽象クラスまたはインターフェイスに対して、いつ特性を使用しますか?PHPの抽象クラスまたはインターフェイスに対して、いつ特性を使用しますか?Apr 10, 2025 am 09:39 AM

PHPでは、特性は方法が必要な状況に適していますが、継承には適していません。 1)特性により、クラスの多重化方法が複数の継承の複雑さを回避できます。 2)特性を使用する場合、メソッドの競合に注意を払う必要があります。メソッドの競合は、代替およびキーワードとして解決できます。 3)パフォーマンスを最適化し、コードメンテナビリティを改善するために、特性の過剰使用を避け、その単一の責任を維持する必要があります。

依存関係噴射コンテナ(DIC)とは何ですか?また、なぜPHPで使用するのですか?依存関係噴射コンテナ(DIC)とは何ですか?また、なぜPHPで使用するのですか?Apr 10, 2025 am 09:38 AM

依存関係噴射コンテナ(DIC)は、PHPプロジェクトで使用するオブジェクト依存関係を管理および提供するツールです。 DICの主な利点には、次のものが含まれます。1。デカップリング、コンポーネントの独立したもの、およびコードの保守とテストが簡単です。 2。柔軟性、依存関係を交換または変更しやすい。 3.テスト可能性、単体テストのために模擬オブジェクトを注入するのに便利です。

通常のPHPアレイと比較して、SPL SPLFIXEDARRAYとそのパフォーマンス特性を説明してください。通常のPHPアレイと比較して、SPL SPLFIXEDARRAYとそのパフォーマンス特性を説明してください。Apr 10, 2025 am 09:37 AM

SplfixedArrayは、PHPの固定サイズの配列であり、高性能と低いメモリの使用が必要なシナリオに適しています。 1)動的調整によって引き起こされるオーバーヘッドを回避するために、作成時にサイズを指定する必要があります。 2)C言語アレイに基づいて、メモリと高速アクセス速度を直接動作させます。 3)大規模なデータ処理とメモリに敏感な環境に適していますが、サイズが固定されているため、注意して使用する必要があります。

PHPは、ファイルを安全に処理する方法をどのように処理しますか?PHPは、ファイルを安全に処理する方法をどのように処理しますか?Apr 10, 2025 am 09:37 AM

PHPは、$ \ _ファイル変数を介してファイルのアップロードを処理します。セキュリティを確保するための方法には次のものが含まれます。1。アップロードエラー、2。ファイルの種類とサイズを確認する、3。ファイル上書きを防ぐ、4。ファイルを永続的なストレージの場所に移動します。

Null Coulescingオペレーター(??)およびNull Coulescing Assignment Operator(?? =)とは何ですか?Null Coulescingオペレーター(??)およびNull Coulescing Assignment Operator(?? =)とは何ですか?Apr 10, 2025 am 09:33 AM

JavaScriptでは、nullcoalescingoperator(??)およびnullcoalescingsignmentoperator(?? =)を使用できます。 1.??最初の非潜水金または非未定されたオペランドを返します。 2.??これらの演算子は、コードロジックを簡素化し、読みやすさとパフォーマンスを向上させます。

See all articles

ホット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ヘンタイを無料で生成します。

ホットツール

WebStorm Mac版

WebStorm Mac版

便利なJavaScript開発ツール

MantisBT

MantisBT

Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。

SecLists

SecLists

SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

VSCode Windows 64 ビットのダウンロード

VSCode Windows 64 ビットのダウンロード

Microsoft によって発売された無料で強力な IDE エディター

AtomエディタMac版ダウンロード

AtomエディタMac版ダウンロード

最も人気のあるオープンソースエディター