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

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

WBOY
WBOYオリジナル
2016-07-13 10:46:32831ブラウズ

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 までご連絡ください。