2012-01-21 264 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中計算。