免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1978 | 回复: 0
打印 上一主题 下一主题

5.初级篇:Zend Framework 如何生成验证码并实现验证码验证功能? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-12-01 03:43 |只看该作者 |倒序浏览
一系列的教程快过半了...现在真的是很少有以前一样的时间再去写教程了...不过我还是会坚持为想学Zend Framework 的朋友做一点我所能做到的东西.
我也是一直在学习中...所以有不好的地方..还是希望朋友们可以理解一下我..我只是把自己会的东西,自己理解的东西写出来..不是专业做教程的..因此有不对的地方还请各位多多批评指正...
    OK!现在我们来实现第5篇教程吧..就是如何在留言本中实现验证码的功能..这样有利于我们网站减少一些垃圾留言或是广告留言..在这是我没有运用Zend Framework自带的Zend_Captcha组件..我只是找到ThinkPHP这个框架里的验证码类..就把它运用到了..我们留言本验证码的实现上...我在这里..是把它写成一个插件的形式...当然Zend Framework有很多方式运用其它代码..我现在只会运用其中一种...所以有好的方法的朋友..可以一起讨论一下下..大家一起进步嘛..呵呵....
   
    第一步:在我们原来教程找到library文件夹..这里原来是存放我们Zend类库文件夹的地方..现在我们在library文件夹里加上如下几个文件夹:library/Custom/Controller/Plugin/...请看我项目增加文件夹后的图片效果:

文件夹我们加入完成.这时候我们就要找到我们的验证码文件了..这里我命名为ImgCode.php文件名..这个文件就是我们将要用到生成验证码的类文件.当然这文件我是改写成了Zend Framework里的插件形式...ImgCode.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).这个动作就是为了生成验证验的运用.
程序如下所示:


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自带的验证码Zend_Captcha组件来实现验证码的功能啊...PHPCHINA上有这方面的教程...我就不多说了...当然..要是有的朋友需要..我有时间再写一篇关于这个组件的运用吧...谢谢大家...
最最后..一个东西..
源码下载
....


本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/16928/showart_1673518.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP