ホームページ バックエンド開発 PHPチュートリアル Zend_PHP チュートリアルに基づいたキャプチャ メカニズムのアプリケーション

Zend_PHP チュートリアルに基づいたキャプチャ メカニズムのアプリケーション

Jul 21, 2016 pm 03:11 PM
captcha php right zend 使用 写真 に基づく どうやって 応用 機構 生成する コード 確認する

検証コード画像を生成するには? PHPを使ったGD?はい、そうです。実際、Zend の Captcha モジュールはパッケージ化されています。この記事では、Zend の Captcha モジュールの使用方法について説明します。


環境のインストール
まず、ZendのCaptchaはGDをインストールする必要があります。 GD がインストールされているかどうかを確認するには、phpinfo() に移動して、GD モジュールがあるかどうかを確認する必要があります。 (php -m のモジュールには gd が含まれているが、phpInfo() のモジュールには含まれていない可能性があることに注意してください。この問題は、PHP と Apache が正しくインストールされていないことを意味します。詳細については、Google で調べてください)

(gd のインストール中に Missing dependency: libt1.so.5 モジュール エラーが表示された場合は、この記事をお読みください: http://www.siutung.org/post/730/)


確認コード画像を生成します
Zend_Captcha_Image クラスを使用します

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

$captcha = new Zend_Captcha_Image()
$captcha->setWordLen('4');
-> setHeight('60')
->setFont(NCCHANNEL_FONT_DIR . '/arial.ttf')
->setImgDir(NCCHANNEL_CAPTCHA_DIR)
->setDotNoiseLevel('5')
->setLineNoiseLevel( '5');

$id = $captcha->generate();


1
ここで説明する必要がある変数は 2 つあります。 $id と $code。 画像ファイル名は $id です。この ID は乱数です。

$code はこの画像内のテキストであり、確認コードの答えです

2

setWordLenなどの設定インターフェースは、認証コード画像を設定するためにZend_Captcha_Imageにより外部に公開されます。実際、その関数の名前を見れば、その関数が何を行うのかを知ることができます。詳細については、Zend の API マニュアルを参照してください。

3

font フォント ファイルはサーバー上に存在する必要があり、ImgDir は画像生成パスに設定されます

確認コードの画像を確認します

さて、確認コードの画像が生成されました。次は、確認コードを確認します。
検証手順では、Zend_Session_Namespace セッション ストレージ モジュールを使用する必要があります。

まず、検証コードを生成するときに、保存する必要がある変数は id と code の 2 つです。

OK、前のステップに戻ってコードを変更します


コードをコピーします コードは次のとおりです:
$captcha = new Zend_Captcha_Image()
$captcha->setWordLen('4' )
- >setHeight('60')
->setFont(NCCHANNEL_FONT_DIR . '/arial.ttf')
->setImgDir(NCHANNEL_CAPTCHA_DIR)
->setDotNoiseLevel('5')
->setLベル('5' );

$id = $captcha->generate();
$codeSession = new Zend_Session_Namespace('captcha_code_' . $id);

$codeSession->getWord ();


ここでわかるように、$captcha_code_$id を使用してコードを保存します。目的は、検証ステップまで待って使用することです。

ステップ 2 フォームをページに渡すときに、$id と確認コードの画像を渡します。


ユーザーに確認コードを入力してもらいます。

3 番目のステップは検証です。

この検証ステップでは、ユーザーは 2 つのパラメーターを指定する必要があります: $id と検証コードの回答 $code



コードをコピーします コードは次のとおりです:
$codeSession = new Zend_Session_Namespace('captcha_code_' . $ this->_params[ 'id']);
if ($codeSession == null || strto lower($codeSession->code) != strto lower($this->_params['code'])) {
$this->Output (ERROR);

}


このコードは読みやすいはずです。captcha_code_$id にコードが保存されており、そのコードがユーザーが入力したコードと一致する場合、検証は成功しました。

このようにして、認証コードの認証プロセスは終了です。


よく考えてください
実は、確認コードはそれほど単純ではありません。検討する価値のある質問がいくつかあります
認証コード画像は自動的に削除されないため、生成された認証コード画像が配置されているフォルダーのサイズは増加し続けます。何をするか?

Image クラスはメソッド $captcha->setGcFreq(5) を提供します。


具体的な使用法についてはAPIをご覧ください

$idを自分で設定したいのですが、どうすればよいですか?

その答えは、Zend_Captche_Image で別のレイヤーをカプセル化し、generate() メソッドを書き直すことです

たとえば、クラスを書き直しました:

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

クラス Test_Captcha_Image は Zend_Captcha_Image を拡張します
{
protected $_fid = "";

public functiongenerate()
{
$word = $this->_generateWord();
$this->_setWord($word); ️ If (mt_rand (1, $this->getGcFreq()) == 1) {
$this->_fid = $id;
$this;
このクラスを使用するコードは次のようになります



コードをコピーします

コードは次のとおりです:


$captcha = new Test_Captcha_Image();
$captcha->setWordLen('4')
->setHeight(
')
-> ;setId($user_id);
$id = $captcha->generate();
$codeSession = new Zend_Session_Namespace('captcha_code_' . $user_id); ->code = $captcha->getWord ();
--------------

//セッションを確認
$codeSession = new Zend_Session_Namespace('captcha_code_' . $this-> ;_params['user_id']);

if ($codeSession == null || strto lower($codeSession->code) != strto lower($this->_params['code'])) { $this- >出力(エラー); }
PS

Zend のキャプチャは、基本的な検証コード アクションをカプセル化します。簡単な認証コードを生成する場合は基本的に内部コードを見る必要はありませんが、認証コードの表示テキストを変更するなど、認証コードに対してより高度な操作を行う必要がある場合は、内部コードを参照することをお勧めします。 Captcha のソースコード。




http://www.bkjia.com/PHPjc/326861.html

www.bkjia.com

tru​​e

http://www.bkjia.com/PHPjc/326861.html

技術記事

検証コード画像を生成するにはどうすればよいですか? PHPを使ったGD?はい、そうです。実際、Zend の Captcha モジュールはパッケージ化されています。この記事では、Zend の Captcha モジュールの使用方法について説明します。 環境のインストール...



このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、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)

CakePHP プロジェクトの構成 CakePHP プロジェクトの構成 Sep 10, 2024 pm 05:25 PM

この章では、CakePHP の環境変数、一般設定、データベース設定、電子メール設定について理解します。

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:25 PM

CakePHP でデータベースを操作するのは非常に簡単です。この章では、CRUD (作成、読み取り、更新、削除) 操作について理解します。

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

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

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

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

CakePHP ルーティング CakePHP ルーティング Sep 10, 2024 pm 05:25 PM

この章では、ルーティングに関連する次のトピックを学習します。

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

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

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

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

See all articles