Joomla!-开源天空

2008-09-08
首页 专栏热点 Joomla! 源代码分析 如何在Joomla!组件扩展中添加验证码captcha,程序修改篇


如何在Joomla!组件扩展中添加验证码captcha,程序修改篇

E-mail

首先PHP的配置要按照要求进行配置,请先参考:如何在Joomla!组件扩展中添加验证码captcha,服务器配置篇

看看是否满足要求。

我在Joomla!验证码使用了bigoCaptha插件,这个插件本地下载地址:http://www.maycode.com/index.php/docman/doc_details/102-joomla-.html

下载后安装插件,并激活(似乎不激活也没问题)。

接下来来我们修改自己的组件程序:

1、controller.php的修改,在controller.php中加入

    function displaycaptcha() {
        global $mainframe;
        $Ok = null;
        $mainframe->triggerEvent('onCaptcha_Display', array($Ok));
         if (!$Ok) {
            echo "<br/>Error displaying Captcha<br/>";
         }                  
    }
   
    function _checkCaptcha() {
        global $mainframe;
        $return = false;
        $word = JRequest::getVar('word', false, '', 'CMD');
        $mainframe->triggerEvent('onCaptcha_confirm', array($word, &$return));
        if ($return) {
            return true;
        } else return false;
    } 

第一段程序用来显示验证码,你可以在任何需要的地方:

<img src="/index.php?option=com_**&task=displaycaptcha" />
<input name="work" type=text>

这样就能够显示验证码了

第二段程序是用来验证是否验证码输入正确的私有函数。


2、在视图模板文件中,添加验证码显示和输入的代码:

<img src="/index.php?option=com_**&task=displaycaptcha" />
<input name="work" type=text>

   其实也不完全局限在组件的视图模板文件中,在插件,模块等需要的地方,都可以添加。

3、修改验证部分,这部分程序应该是POST后的处理程序,通常可能是controller.php的save函数,反正就是对应的task,添加如下代码:

    if (!$this->_checkCaptcha()) {
        JError::raiseError("403","You have entered the wrong CAPTCHA sequence. Please try again.");
        return false;
    }

整个验证码的添加过程完成了。

相关文章:
一个在文章正文中显示幻灯的插件
这篇关于Joomla! unit testing 的文章值得看
怎样创建一个Joomla! 1.5 新用户
如何修改mod_latestnews模块以显示文章的发布日期
如何给Joomla!组件扩展添加PDF
给自己开发的Joomla!组件增加RSS
如何在Joomla!管理后台中添加自定义的按钮
给自己的Joomla!组件扩展添加参数
怎样强制自己退出登陆状态
如何在Joomla!组件扩展中添加验证码captcha,服务器配置篇
User Reviews(2)
 验证码
作者:csit5k 星期四, 20 三月 2008 18:53
转让卡易售2006版挂机程序源代码,
转让验证码自动识别源代码,
懂delphi且有开发实力的公司可以联系,
http://www.it5k.com/ld_hotproduct.asp,
联系qq:418829795, 0731-2488151
 ssss
作者:sa 星期五, 25 四月 2008 17:24
hey,find wow gold click here

发表您的文章评论

您的姓名 (昵称)
标题:
评分: 很差一般较好很好
评论:
验证码:
请输入验证码