CAPTCHA dla komponentu kontaktów - Joomla 1.5.x. Drukuj
Ocena użytkowników: / 1
SłabyŚwietny 
Wpisany przez Jan Jackowicz-Korczyński   
środa, 01 września 2010 16:57

Komponent kontakty Joomla 1.5.n umożliwia ukrycie kontaktowego adresu e-mail oraz udostępnienie w systemie formularza kontaktowego dla tego e-maila.

Niezabezpieczony formularz jest natomiast zagrożony bootami, które mogą wysyłać spam na skrzynkę kontaktową.

 

Jako zabezpieczenie przed tego rodzaju uciązliwością jest zastosowanie tzw. CAPTCHA przy formularzach. Najczęściej wymagane jest przepisanie znaków z udostępnionej ilustracji co jest wystarczającym zabezpieczeniem przed robotami, przynajmniej obecnie.

Joomla 1.5.n nie m systemowych zabezpieczeń Captha formularza kontaktowego. Istnieje konieczność zastosowania odpowiednich dodatków.

Uzupełnieniem takim są komponent (component) i dodatek (plugin) o nazwie: tinCPATCHA dostępny do pobrania pod adresem:  http://extensions.joomla.org/extensions/access-a-security/site-security/captcha/4887

Komponent i dodatek pobrać i zainstalować.

Nie zapomnij opublikować zainstalowanego dodatku.

Niestety używanie jogo wymaga jeszcze zmodyfikowania kodu komponentu Kontakty w 2 plikach. I tak kolejno:

W pliku: components/com_contact/controller.php należy wyszukać odpowiednie miejsce i wkleić blok kodu tinyCAPTCHA jak poniżej:

function submit()
   {
      global $mainframe;

      // Check for request forgeries
      JRequest::checkToken() or jexit( 'Invalid Token' );

      // tincaptcha-
      $captchk = plgSystemTincaptcha::check(JRequest::getVar('captcha', '', 'post'));
      if ($captchk !== true)
      {
         JError::raiseWarning(0, $captchk);
         return false;
      }

      // -tincaptcha


	

Podobnie należy zrobić z plikiem:

components/com_contact/views/contact/tmpl/default_form.php,

według wzoru:


 <label id="contact_textmsg" for="contact_text">
            &nbsp;<?php echo JText::_( 'Enter your message' );?>:
         </label>
         <br />
         <textarea cols="50" rows="10" name="text" id="contact_text" class="inputbox required"></textarea>
         <!-- tincaptcha- -->
         <br />
         <label for="captcha">
            &nbsp;<?php echo JText::_( 'TIN_CAPTCHA' );?>:
         </label>
         <br />
         <input type="text" name="captcha" id="captcha" size="10" class="inputbox required" value="" />
         <br />
						<img name="captchaimg" src="/index.php?option=com_tincaptcha&task=captcha_display" alt="<?php echo JText::_( 'TIN_CAPTCHA' );?>" />
						<a href="javascript:void(0);" onclick="document.images['captchaimg'].src='index.php?option=com_tincaptcha&task=captcha_display&t='+(new Date()).getTime();return false;"><?php echo JText::_('TIN_REFRESH');?></a>

         <!-- -tincaptcha -->


	

Polski plik językowy dostępny jest tutaj: pl-PL.com_tincaptcha.ini

Należy go oczywiście umieścić w katalogu: lanquage/pl-PL