在 Joomla 中将 ReCaptcha 与我的自定义表单一起使用 [英] Using ReCaptcha with my custom form in Joomla

查看:29
本文介绍了在 Joomla 中将 ReCaptcha 与我的自定义表单一起使用的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试使用 JFormFieldCaptcha 来处理我的自定义 jForm.我设法通过注册和联系表格完成了工作.但是我想构建我自己的基于 XML 文件的联系表单,看起来像这样:

<fieldset addfieldpath="<JFormFieldCaptcha 类的路径>"><字段name="captcha" label="Captcha" description="COM_DEZTOUR_ORDER_CAPTCHA_DESC"类型=文本"验证=验证码"/></fieldset></表单>

我不明白为什么这段代码不起作用.任何帮助都会受到赞赏!

解决方案

为了使用Joomla ReCaptcha插件-

1) 从 http://www.google.com/recaptcha 获取recaptcha 密钥>

2)将这些密钥设置为recaptcha插件,如果不是,请激活它.

3) 转到 Global Configuration=>Site=>Default Captcha

并设置"Default Captcha"=>"Captcha - ReCaptcha"

4) 创建包含验证码字段的 xml 表单实例

$form =&JForm::getInstance('myform','path/to/form/form.xml');

5)在表单内创建字段-

$fieldSets = $form->getFieldsets();foreach ($fieldSets as $name => $fieldSet) :?><?phpforeach ($form->getFieldset($name) as $field):?><p><?php if (!$field->hidden) : ?><span class="formlabel"><?php echo $field->label;?></span><?php endif;?><span class="control"><?php echo $field->input;?></span></p><?phpEndforeach;?><div class="clr"></div><?phpEndforeach;

6)提交表单后验证表单-

$post = JRequest::get('post');jimport('joomla.form.form');$form =&JForm::getInstance('myform','path/to/form/form.xml');$res = $form->validate($post);

XML 表单示例-

<fieldset name="信息"><field id="姓名"名称=名称"类型=文本"标签=名称"说明=""类=输入框"大小=30"默认="必需=真"/><字段名称=验证码"类型=验证码"标签="COM_CONTACT_CAPTCHA_LABEL"描述="COM_CONTACT_CAPTCHA_DESC"验证=验证码"/></fieldset></表单>

你也可以试试这个——如何使用 joomla recaptcha 插件到我的自定义模块

I'm trying to use JFormFieldCaptcha to work on my custom jForm. I managed to get the job done with registration and contact forms. However i want to build my own contact form which is based on an XML file somehow look like this:

<form>
    <fieldset addfieldpath="<path to JFormFieldCaptcha class>">
        <field 
             name="captcha" label="Captcha" description="COM_DEZTOUR_ORDER_CAPTCHA_DESC"
         type="text" validate="captcha"
        />
     </fieldset>
</form>

i cannot figure out why this code not working. Any help would be appriciated!

解决方案

In order to use Joomla ReCaptcha plugin -

1)Get recaptcha keys from http://www.google.com/recaptcha

2)Set these keys to recaptcha plugin and activate it if it's not.

3) Go to Global Configuration=>Site=>Default Captcha

and set "Default Captcha"=>"Captcha - ReCaptcha"

4)Create xml form instance which has your captcha field

$form   =& JForm::getInstance('myform','path/to/form/form.xml');

5)Create fields inside form-

$fieldSets = $form->getFieldsets();
foreach ($fieldSets as $name => $fieldSet) :
?>          
    <?php
    foreach ($form->getFieldset($name) as $field):
    ?>
        <p>
        <?php if (!$field->hidden) : ?>
        <span class="formlabel"><?php echo $field->label; ?></span> 
        <?php endif; ?>
        <span class="control"><?php echo $field->input; ?></span>
        </p>
    <?php
    endforeach;
    ?>          
    <div class="clr"></div>
<?php
endforeach;             

6)After form submission validate form-

$post   = JRequest::get('post');
jimport( 'joomla.form.form' );
$form   =& JForm::getInstance('myform','path/to/form/form.xml');
$res    = $form->validate($post);

XML form example-

<?xml version="1.0" encoding="utf-8"?>
<form
    addfieldpath="/administrator/components/com_franchise/models/fields">
    <fieldset name="information">        
         <field id="name"
            name="name"
            type="text"
            label="Name"
            description=""
            class="inputbox"
            size="30"
            default=""
            required="true"
        />  

         <field
            name="captcha"
            type="captcha"
            label="COM_CONTACT_CAPTCHA_LABEL"
            description="COM_CONTACT_CAPTCHA_DESC"
            validate="captcha"

        />

    </fieldset> 
</form>

You can also try this- How to use joomla recaptcha plugin to my custom Module

这篇关于在 Joomla 中将 ReCaptcha 与我的自定义表单一起使用的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆