検索
ホームページバックエンド開発PHPチュートリアルZend_PHP チュートリアルに基づいたキャプチャ メカニズムのアプリケーション
Zend_PHP チュートリアルに基づいたキャプチャ メカニズムのアプリケーションJul 21, 2016 pm 03:11 PM
captchaphprightzend使用写真に基づくどうやって応用機構生成するコード確認する

検証コード画像を生成するには? 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 までご連絡ください。
如何在技嘉主板上设置键盘启动功能 (技嘉主板启用键盘开机方式)如何在技嘉主板上设置键盘启动功能 (技嘉主板启用键盘开机方式)Dec 31, 2023 pm 05:15 PM

技嘉的主板怎么设置键盘开机首先,要支持键盘开机,一定是PS2键盘!!设置步骤如下:第一步:开机按Del或者F2进入bios,到bios的Advanced(高级)模式普通主板默认进入主板的EZ(简易)模式,需要按F7切换到高级模式,ROG系列主板默认进入bios的高级模式(我们用简体中文来示范)第二步:选择到——【高级】——【高级电源管理(APM)】第三步:找到选项【由PS2键盘唤醒】第四步:这个选项默认是Disabled(关闭)的,下拉之后可以看到三种不同的设置选择,分别是按【空格键】开机、按组

CS玩家的首选:推荐的电脑配置CS玩家的首选:推荐的电脑配置Jan 02, 2024 pm 04:26 PM

1.处理器在选择电脑配置时,处理器是至关重要的组件之一。对于玩CS这样的游戏来说,处理器的性能直接影响游戏的流畅度和反应速度。推荐选择IntelCorei5或i7系列的处理器,因为它们具有强大的多核处理能力和高频率,可以轻松应对CS的高要求。2.显卡显卡是游戏性能的重要因素之一。对于射击游戏如CS而言,显卡的性能直接影响游戏画面的清晰度和流畅度。建议选择NVIDIAGeForceGTX系列或AMDRadeonRX系列的显卡,它们具备出色的图形处理能力和高帧率输出,能够提供更好的游戏体验3.内存电

主板上的数字音频输出接口-SPDIF OUT主板上的数字音频输出接口-SPDIF OUTJan 14, 2024 pm 04:42 PM

主板上SPDIFOUT连接线序最近我遇到了一个问题,就是关于电线的接线顺序。我上网查了一下,有些资料说1、2、4对应的是out、+5V、接地;而另一些资料则说1、2、4对应的是out、接地、+5V。最好的办法是查看你的主板说明书,如果找不到说明书,你可以使用万用表进行测量。首先找到接地,然后就可以确定其他的接线顺序了。主板vdg怎么接线连接主板的VDG接线时,您需要将VGA连接线的一端插入显示器的VGA接口,另一端插入电脑的显卡VGA接口。请注意,不要将其插入主板的VGA接口。完成连接后,您可以

广联达软件电脑配置推荐;广联达软件对电脑的配置要求广联达软件电脑配置推荐;广联达软件对电脑的配置要求Jan 01, 2024 pm 12:52 PM

广联达软件是一家专注于建筑信息化领域的软件公司,其产品被广泛应用于建筑设计、施工、运营等各个环节。由于广联达软件功能复杂、数据量大,对电脑的配置要求较高。本文将从多个方面详细阐述广联达软件的电脑配置推荐,以帮助读者选择适合的电脑配置处理器广联达软件在进行建筑设计、模拟等操作时,需要进行大量的数据计算和处理,因此对处理器的要求较高。推荐选择多核心、高主频的处理器,如英特尔i7系列或AMDRyzen系列。这些处理器具有较强的计算能力和多线程处理能力,能够更好地满足广联达软件的需求。内存内存是影响计算

如何简单绕过人机身份验证Captcha如何简单绕过人机身份验证CaptchaMay 11, 2023 pm 05:55 PM

今天分享的Writeup是作者在目标网站漏洞测试中发现的一种简单的人机身份验证(Captcha)绕过方法,利用Chrome开发者工具对目标网站登录页面进行了简单的元素编辑就实现了Captcha绕过。人机身份验证(Captcha)通常会出现在网站的注册、登录和密码重置页面,以下是目标网站在登录页面中布置的Captcha机制。从上图中可以看到,用户只有在勾选了Captcha验证机制的“I‘mnotarobot”之后,登录按钮(Sign-IN)才会启用显示以供用户点击。因此,基于这点,我右键点击了Si

如何在Zend框架中使用ACL(Access Control List)进行权限控制如何在Zend框架中使用ACL(Access Control List)进行权限控制Jul 29, 2023 am 09:24 AM

如何在Zend框架中使用ACL(AccessControlList)进行权限控制导言:在一个Web应用程序中,权限控制是至关重要的一项功能。它可以确保用户只能访问其有权访问的页面和功能,并防止未经授权的访问。Zend框架提供了一种方便的方法来实现权限控制,即使用ACL(AccessControlList)组件。本文将介绍如何在Zend框架中使用ACL

请推荐一款性价比较高的1155针CPU请推荐一款性价比较高的1155针CPUJan 14, 2024 pm 01:30 PM

求推荐1155针的cpu哪个最好当前性能最高的1155针CPU是IntelCorei7-3770K。它拥有4个核心和8个线程,基础频率为3.5GHz,并支持TurboBoost2.0技术,最高可达到3.9GHz。此外,它还搭载了8MB的三级缓存,是一款非常出色的处理器LGA1155针最强的CPUIntel酷睿i73770K。LGA1155接口为二三代酷睿处理器所使用的接口类型,性能最好的为Intel酷睿i73770K,这款处理器参数如下:1.适用类型:台式机;2.CPU系列:酷睿i7;3.CPU

我准备去西藏旅行背包去①背多少升的包合适把你认为最好的配置说下本人170体力不错第一次我准备去西藏旅行背包去①背多少升的包合适把你认为最好的配置说下本人170体力不错第一次Jan 07, 2024 am 10:06 AM

我准备去西藏旅行背包去①背多少升的包合适把你认为最好的配置说下本人170体力不错第一次去徒步多就60升或以上的徒步少就60升以下的全程都坐车就不用背包,旅行箱更方便,真要随身带东西,弄个25~40升的就绰绰有馀西藏旅游必备用品:太阳镜、太阳帽、防晒霜、护肤霜、润唇膏、长袖上衣、毛衣;对于特殊旅游或去阿里、藏北、川藏线旅游,建议带:睡袋(防寒)、床单(防脏)、羽绒服、旅游鞋或登山鞋、拖鞋、牙刷、牙膏、毛巾、卷筒纸、纸内裤、消毒湿巾、手电筒、防水火柴、刀具、绳子。前运包能装电脑吗能装电脑,有些背包有

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

ホットツール

Dreamweaver Mac版

Dreamweaver Mac版

ビジュアル Web 開発ツール

SublimeText3 Linux 新バージョン

SublimeText3 Linux 新バージョン

SublimeText3 Linux 最新バージョン

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

SublimeText3 英語版

SublimeText3 英語版

推奨: Win バージョン、コードプロンプトをサポート!

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強力な PHP 統合開発環境