ホームページ >バックエンド開発 >PHPチュートリアル >PHP 生成イメージ検証コードの実践ノート_PHP チュートリアル
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 生成イメージ検証コードの実践ノート_PHP チュートリアルの簡単な概念をご紹介します。
1. 認証コードの紹介
認証コードは、ページ上に画像の形で表示されるランダムに生成された数字または記号の文字列であり、ユーザーは送信操作を実行するときに画像上の文字を肉眼で識別することができます。入力と送信を同時に行う必要があります。機能は検証に成功した後にのみ使用できます。送信された文字がサーバー セッションに保存されている文字と異なる場合、送信された情報は無効とみなされます。自動プログラムによる画像の分析や解析を防ぐために、通常、一部のインターフェロンが画像上でランダムに生成されたり、文字が歪んだりして、自動認識がより困難になります。ユーザーが送信した後、ユーザーが入力したPHP 生成イメージ検証コードの実践ノート_PHP チュートリアルがセッションに保存された文字列と比較され、検証効果が得られます。ユーザーがフォームを送信すると、フォームを受信するページは、サーバーによって生成されたセッションがクライアントによって送信されたフォーム値と一致するかどうかを確認します。 Consistent はデータベースの読み取りも書き込みも行いません。セッションにより、少量のユーザー情報がサーバーに保存されます。この情報は一時的なもので、ユーザーが Web サイトを離れると自動的に削除されます。
2.PHP実装プロセス
PHP Web ページ ファイルは、一般的な HTML Web ページ ファイルとして扱われ、編集する場合は、従来の HTML 編集方法を使用して作成できます。 PHP は使用時にシステム リソースをほとんど消費せず、オープン ソース コードがあり、無料であるため、現在、PHP はより多くの Web サイトで使用されています。以下は、PHP でPHP 生成イメージ検証コードの実践ノート_PHP チュートリアルを実装するプロセスです。
(1) 乱数を生成する
画像に表示する数字と文字を定義します。
コードをコピー
; | $ l = strlen( $ str) ;
$ num= rand( 0 , $ l- 1); $ aut hnum_session. = $ str[ $ num];$ aut hnum_session. = $ str[ $ num]; } $ _SESSI ON[ " authnum_session" ] ; ?> (2) 写真を作成します 作成する画像のサイズは、イメージ作成機能を使用して決定します。 |
コードをコピー
コードは次のとおりです | コードをコピー |
$ b missing = ImageColor すべての場所( $ im, 0 , 0, 0); |
(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 ( ) ; |
上記の確認コードは次のように結果を表示します
検証のためにPHP 生成イメージ検証コードの実践ノート_PHP チュートリアルを呼び出す必要があるページで、ユーザーがPHP 生成イメージ検証コードの実践ノート_PHP チュートリアル フォームに入力すると、システムはフォームに送信されたPHP 生成イメージ検証コードの実践ノート_PHP チュートリアル データと上記のセッション変数を比較します。それらが等しい場合、検証は正しく行われます。それらが等しくない場合は、エラーとなり、ユーザーの進行中の作業が終了し、PHP 生成イメージ検証コードの実践ノート_PHP チュートリアルを使用してユーザーの検証機能が実現されます。
例
無題のドキュメント
コードは次のとおりです | コードをコピー |
関数refresh_code() { form1.imgcode.src="verifycode.php?a="+Math.random(); } スクリプト> |