Zend Framework生成验证码并实现验证码验证功能(附demo源码下载)


Posted in PHP onMarch 22, 2016

本文实例讲述了Zend Framework生成验证码并实现验证码验证功能的方法。分享给大家供大家参考,具体如下:

今天讲述如何在留言本中实现验证码的功能..这样有利于我们网站减少一些垃圾留言或是广告留言..在这是我没有运用Zend Framework自带的Zend_Captcha组件..我只是找到ThinkPHP这个框架里的验证码类..就把它运用到了..我们留言本验证码的实现上...我在这里..是把它写成一个插件的形式...当然Zend Framework有很多方式运用其它代码..我现在只会运用其中一种...所以有好的方法的朋友..可以一起讨论一下下..大家一起进步嘛..呵呵....

第一步:在我们原来教程找到library文件夹..这里原来是存放我们Zend类库文件夹的地方..现在我们在library文件夹里加上项目中的几个文件夹:library/Custom/Controller/Plugin/

文件夹我们加入完成.这时候我们就要找到我们的验证码文件了..这里我命名为ImgCode.php文件名..这个文件就是我们将要用到生成验证码的类文件.当然这文件我是改写成了Zend Framework里的插件形式...ImgCode.php部分文件说明如下:

<?php
//ImgCode.php部分程序说明
//程序生成的验证码数据
$randval = $this->rand_string($length,$mode);
//把这个数据存贮在Zend_Session中...
//这里有一个Session命名空间的问题,朋友们可以去看一下手册
$authCode = new Zend_Session_Namespace('Auth_Code');
$authCode->imagecode = $randval;
?>

第二步:在我们留言本的控制器里(IndexController.php),加入一个如下的动作(Action).这个动作就是为了生成验证验的运用.

程序如下所示:

<?php
public function imgcodeAction() {
$this->getFrontController()->setParam('noViewRenderer', true);
//调用我们的验证码类
Zend_Loader::loadClass('Custom_Controller_Plugin_ImgCode');
$imagecode=new Custom_Controller_Plugin_ImgCode();
//返回验证码图片
$imagecode->image2();
}
?>

第三步:在我们的留言模板中加入验证码的功能:打开留言本显示页面的模板,message/index.phtml 我们在填写留言区加入下面html代码..这个时候请大家看源文件里面的JS代码..像更换验证码图片什么的功能..这小东西我就不多说了..我只是比上次教程多加了一些JS的功能..

最后..就是在我们的控制器(IndexController.php)里找到messageAction这个功能..我们在里面加下需要用到验证码的功能..也就是检验用户填写的验证码是否和我们存在Session里面的验证码相同..如果相同..我们就让他发表留言..否则就不让他留言..我想这个基本的思想大家都有的.

完整实例代码点击此处本站下载。

希望本文所述对大家基于Zend Framework框架的PHP程序设计有所帮助。

PHP 相关文章推荐
PHP 冒泡排序算法的实现代码
Aug 08 PHP
PHP中删除变量时unset()和null的区别分析
Jan 27 PHP
用PHP读取超大文件的实例代码
Apr 01 PHP
不使用php api函数实现数组的交换排序示例
Apr 13 PHP
php对称加密算法示例
May 07 PHP
Smarty模板学习笔记之Smarty简介
May 20 PHP
windows下apache搭建php开发环境
Aug 27 PHP
PHP使用mkdir创建多级目录的方法
Dec 22 PHP
php实现批量修改文件名称的方法
Jul 23 PHP
PHP操作Redis常用技巧总结
Apr 24 PHP
详解如何实现Laravel的服务容器的方法示例
Apr 15 PHP
关于laravel框架中的常用目录路径函数
Oct 23 PHP
PHP的Laravel框架中使用AdminLTE模板来编写网站后台界面
Mar 21 #PHP
深入解析PHP的Laravel框架中的event事件操作
Mar 21 #PHP
Android App中DrawerLayout抽屉效果的菜单编写实例
Mar 21 #PHP
PHP的Laravel框架结合MySQL与Redis数据库的使用部署
Mar 21 #PHP
PHP编写学校网站上新生注册登陆程序的实例分享
Mar 21 #PHP
调用WordPress函数统计文章访问量及PHP原生计数器的实现
Mar 21 #PHP
PHP程序中的文件锁、互斥锁、读写锁使用技巧解析
Mar 21 #PHP
You might like
php录入页面中动态从数据库中提取数据的实现
2006/10/09 PHP
swoole_process实现进程池的方法示例
2018/10/29 PHP
Array.prototype.slice 使用扩展
2010/06/09 Javascript
JS设置获取cookies的方法
2014/01/26 Javascript
js实现连个数字相加而不是拼接的方法
2014/02/23 Javascript
jQuery中change事件用法实例
2014/12/26 Javascript
jQuery中map()方法用法实例
2015/01/06 Javascript
jQuery中closest()函数用法实例
2015/01/07 Javascript
JavaScript 学习笔记之数据类型
2015/01/14 Javascript
yarn与npm的命令行小结
2016/10/20 Javascript
浅谈Angular的$q, defer, promise
2016/12/20 Javascript
在ABP框架中使用BootstrapTable组件的方法
2017/07/31 Javascript
JS实现评价的星星功能
2017/08/20 Javascript
layer.close()关闭进度条和Iframe窗的方法
2018/08/17 Javascript
vue监听对象及对象属性问题
2018/08/20 Javascript
JS/HTML5游戏常用算法之碰撞检测 包围盒检测算法详解【圆形情况】
2018/12/13 Javascript
JS实现点击按钮随机生成可拖动的不同颜色块示例
2019/01/30 Javascript
vue.js实现左边导航切换右边内容
2019/10/21 Javascript
Selenium执行JavaScript脚本的方法示例
2020/12/31 Javascript
[06:45]DOTA2卡尔工作室 英雄介绍幻影长矛手篇
2013/07/12 DOTA
[01:32]TI奖金增速竟因它再创新高!DOTA2勇士令状不朽珍藏Ⅰ饰品欣赏
2018/05/18 DOTA
[49:58]完美世界DOTA2联赛PWL S3 Magma vs DLG 第一场 12.18
2020/12/19 DOTA
python对数组进行反转的方法
2015/05/20 Python
python从入门到精通(DAY 2)
2015/12/20 Python
django基础之数据库操作方法(详解)
2017/05/24 Python
python删除文本中行数标签的方法
2018/05/31 Python
Python批处理删除和重命名文件夹的实例
2018/07/11 Python
python列表list保留顺序去重的实例
2018/12/14 Python
python实现维吉尼亚算法
2019/03/20 Python
Pytorch使用MNIST数据集实现基础GAN和DCGAN详解
2020/01/10 Python
python自动打开浏览器下载zip并提取内容写入excel
2021/01/04 Python
2014年党员自我评议(5篇)
2014/09/12 职场文书
2015幼儿园庆元旦活动方案
2014/12/09 职场文书
公路施工安全责任书
2015/05/08 职场文书
python 远程执行命令的详细代码
2022/02/15 Python
Java实现超大Excel文件解析(XSSF,SXSSF,easyExcel)
2022/07/15 Java/Android