查看: 9825|回复: 0
打印 上一主题 下一主题

Zend Framework如何生成验证码并实现验证功能

[复制链接]
跳转到指定楼层
1#
发表于 2009-7-29 14:20:03 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
台州网址导航
这一系列的教程快过半了...现在真的是很少有以前一样的时间再去写教程了...不过我还是会坚持为想学Zend Framework 的朋友做一点我所能做到的东西.
我也是一直在学习中...所以有不好的地方..还是希望朋友们可以理解一下我..我只是把自己会的东西,自己理解的东西写出来..不是专业做教程的..因此有不对的地方还请各位多多批评指正...
    OK!现在我们来实现第5篇教程吧..就是如何在留言本中实现验证码的功能..这样有利于我们网站减少一些垃圾留言或是广告留言..在这是我没有运用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自带的验证码Zend_Captcha组件来实现验证码的功能啊...PHPCHINA上有这方面的教程...我就不多说了...当然..要是有的朋友需要..我有时间再写一篇关于这个组件的运用吧...谢谢大家...



     最最后..一个东西..源码下载....
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 转播转播 分享分享 分享淘帖
台州维博网络(www.tzweb.com)专门运用PHP+MYSQL/ASP.NET+MSSQL技术开发网站门户平台系统等。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

网站推广
关于我们
  • 台州朗动科技(Tzweb.com)拥有多年开发网站平台系统门户手机客户端等业务的成功经验。主要从事:政企网站,系统平台,微信公众号,各类小程序,手机APP客户端,浙里办微应用,浙政钉微应用、主机域名、虚拟空间、后期维护等服务,满足不同企业公司的需求,是台州地区领先的网络技术服务商!

Hi,扫描关注我

Copyright © 2005-2026 站长论坛 All rights reserved

Powered by 站长论坛 with TZWEB Update Techonolgy Support

快速回复 返回顶部 返回列表