2012-01-21 241 views
0

我使用Joomla jQuery注册扩展,它没有任何形式的botcheck功能,我想添加它,但我不知道如何去做。下面是该扩展的代码:Joomla jQuery注册扩展+ captcha

<?php 
/** 
* @title   jQuery Dropdown Registration Module 
* @version 1.7.2 
* @package  Joomla 
* @author  http://www.minitek.gr (Ioannis Maragos) 
* @copyright Copyright (C) 2011 Minitek. All rights reserved. 
* @license  GNU General Public License version 2 or later. 
*/ 

// no direct access 
defined('_JEXEC') or die('Restricted access'); 
?> 
<?php JHTML::_('behavior.formvalidation'); ?>  

<?php /*<link rel="stylesheet" href="modules/mod_dropdown_registration/css/style.css" type="text/css" /> */?> 
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js?ver=1.4.2" type="text/javascript"></script> 
<script src="modules/mod_dropdown_registration/js/register.js" type="text/javascript"></script> 


<?php 
$user = JFactory::getUser(); 
$myID = $user->id; 
if ($myID == 0) { 
?> 
<div id="registerContainer"> 
       <a href="#" id="registerButton"><span>Registracija</span><em></em></a> 
       <div style="clear:both"></div> 
<div id="registerBox"> 

<form id="member-registration" action="<?php echo JRoute::_('index.php?option=com_users'); ?>" method="post" class="form-validate"> 

<fieldset id="reg-body" class="userdata">  

<div class="reg-field"> 
    <label for="jform_name" id="jform_name-lbl"> 
      Ime i prezime: 
    </label> 
</div>  
<div style="float:left;"> 
    <input type="text" maxlength="50" class="inputbox required" value="" size="40" id="jform_name" name="jform[name]"/><br/> 
    Molimo Vas da unesete stvarno ime i prezime! 
</div> 

<div style="clear:both;"></div> 
<div style="height: 7px;"></div> 

<div class="reg-field"> 
     <label for="jform_username" id="jform_username-lbl"> 
      Korisničko ime: 
     </label> 
</div> 
<div style="float:left;"> 
     <input type="text" maxlength="25" class="inputbox required validate-username" value="" size="40" name="jform[username]" id="jform_username"/> 
</div> 
<div style="clear:both;"></div> 

<div class="reg-field"> 
     <label for="jform_password1" id="jform_password1-lbl"> 
      Lozinka: 
     </label> 
</div> 
<div style="float:left;"> 
     <input type="password" value="" size="40" name="jform[password1]" id="jform_password1" class="inputbox required validate-password"/> 
</div> 
<div style="clear:both;"></div> 

<div class="reg-field"> 
     <label for="jform_password2" id="jform_password2-lbl"> 
      Potvrdite lozinku: 
     </label> 
</div> 
<div style="float:left;"> 
     <input type="password" value="" size="40" name="jform[password2]" id="jform_password2" class="inputbox required validate-password"/> 
</div> 
<div style="clear:both;"></div> 

<div class="reg-field"> 
     <label for="jform_email1" id="jform_email1-lbl"> 
      E-mail: 
     </label> 
</div> 
<div style="float:left;"> 
     <input type="text" maxlength="100" class="inputbox required validate-email" value="" size="40" name="jform[email1]" id="jform_email1"/> 
</div> 
<div style="clear:both;"></div> 

<div class="reg-field"> 
     <label for="jform_email2" id="jform_email2-lbl"> 
      Potvrdite e-mail: 
     </label> 
</div> 
<div style="float:left;"> 
     <input type="text" maxlength="100" class="inputbox required validate-email" value="" size="40" name="jform[email2]" id="jform_email2"/> 
</div> 
<div style="clear:both;"></div> 

<br/> 
    <font color = "#FF0000">Sva polja su obavezna!</font><br/> 

<br/> 
    <button type="submit" class="button validate">Registracija</button> 
    <input type="hidden" name="option" value="com_users" /> 
    <input type="hidden" name="task" value="registration.register" /> 
    <?php echo JHtml::_('form.token');?> 

    </fieldset> 

</form> 

</div> 
</div> 
<?php 
} 
?> 

对不起,如果不出来的代码块,但说明不清楚。无论如何 - 我想要做的是在提交按钮之前添加一个文本字段,它的前面有一个“What is 3 plus 2”标签,如果答案不正确,提交将不起作用。有没有办法做到这一点,而不编辑Joomla核心文件?

回答

0

您可以使用jQuery将您的标签和输入元素添加到页面。然后将一个.click()监听器绑定到提交按钮,该提交按钮可在提交表单之前检查答案的有效性。难道这不是一个非常安全的机器人检查解决方案。为了增加额外的安全级别,你可以考虑将2和3改为2和3,也可以在正,负,乘和除之间交替,并将答案和问题组合存储在你的Joomla会话中,而不是在JS中计算。