Каптча в регистрационную форму

Тема в разделе "Подбор расширений", создана пользователем Karyuudo, 31.12.2008.

  1. Offline

    Karyuudo Недавно здесь

    Регистрация:
    25.10.2008
    Сообщения:
    47
    Симпатии:
    0
    Пол:
    Мужской
    как в стандартный модуль регистрации Joomla 1.5.8 поставить какой-нибудь плагин каптчи?
    чтоб просто скачать загрузить и готово! есть ли такие?
     
  2.  
  3. Offline

    Aleksandr(A) Недавно здесь

    Регистрация:
    04.01.2009
    Сообщения:
    4
    Симпатии:
    1
    Joomla Captcha 4.3 Stable
    описание установки с картинками: ТУТ
    а сам дистриб. файлы: ТУТ .
    Все ясно и понятно...
     
    Рекрут нравится это.
  4. Offline

    serzhinio Недавно здесь

    Регистрация:
    22.05.2008
    Сообщения:
    7
    Симпатии:
    1
    Пол:
    Мужской
    а для joomla 1.0.15 есть что то подобное... боты достали уже
     
  5. chilly_bang
    Offline

    chilly_bang Недавно здесь => Cпециалист <=

    Регистрация:
    30.04.2006
    Сообщения:
    1 541
    Симпатии:
    38
    Пол:
    Мужской
    serzhinio, есть.
     
  6. Offline

    Abyr Недавно здесь

    Регистрация:
    11.08.2008
    Сообщения:
    5
    Симпатии:
    0
    Пол:
    Мужской
    А я форму регистрации жаба-скриптом спрятал.
    Не знаю насколько эффективно будет в дальнейшем, но боты пока не беспокоят:X
     
  7. Offline

    serzhinio Недавно здесь

    Регистрация:
    22.05.2008
    Сообщения:
    7
    Симпатии:
    1
    Пол:
    Мужской
    Советы конечно очень полезные

    1. - serzhinio, - есть.

    2. - я форму регистрации жаба-скриптом спрятал.

    Может хоть ссылочку какую где скачать, как настроить и тд.
    Спасибо!
     
  8. Offline

    Abyr Недавно здесь

    Регистрация:
    11.08.2008
    Сообщения:
    5
    Симпатии:
    0
    Пол:
    Мужской
    Кагбе ваша ирония не совсем уместна имхо;)

    Когда я озадачился этой проблемой, а коды ковырять было лень, то достаточно быстро нашел вот это например: CAPTCHA для Joomla 1.0.15
    Все очень доходчиво вроде.

    Другое дело, что мне например в принципе каптча не нравится (с точки зрения пользователя), и я по возможности стараюсь ее избегать. Поэтому попробовал "спрятать" саму форму регистрации, используя javascript.

    например, в файле registration.html.php есть функция registerForm, в ней код самой формы:
    Код (CODE):
    1. <div class="componentheading">
    2.             <?php echo _REGISTER_TITLE; ?>
    3.         </div>
    4.  
    5.         <table cellpadding="0" cellspacing="0" border="0" width="100%" class="contentpane">
    6.         <tr>
    7.             <td colspan="2"><?php echo _REGISTER_REQUIRED; ?></td>
    8.         </tr>
    9.         <tr>
    10.             <td width="30%">
    11.                 <?php echo _REGISTER_NAME; ?> *
    12.             </td>
    13.             <td>
    14.                 <input type="text" name="name" size="40" value="" class="inputbox" maxlength="50" />
    15.             </td>
    16.         </tr>
    17.         <tr>
    18.             <td>
    19.                 <?php echo _REGISTER_UNAME; ?> *
    20.             </td>
    21.             <td>
    22.                 <input type="text" name="username" size="40" value="" class="inputbox" maxlength="25" />
    23.             </td>
    24.         </tr>
    25.         <tr>
    26.             <td>
    27.                 <?php echo _REGISTER_EMAIL; ?> *
    28.             </td>
    29.             <td>
    30.                 <input type="text" name="email" size="40" value="" class="inputbox" maxlength="100" />
    31.             </td>
    32.         </tr>
    33.         <tr>
    34.             <td>
    35.                 <?php echo _REGISTER_PASS; ?> *
    36.             </td>
    37.             <td>
    38.                 <input class="inputbox" type="password" name="password" size="40" value="" />
    39.             </td>
    40.         </tr>
    41.         <tr>
    42.             <td>
    43.                 <?php echo _REGISTER_VPASS; ?> *
    44.             </td>
    45.             <td>
    46.                 <input class="inputbox" type="password" name="password2" size="40" value="" />
    47.             </td>
    48.         </tr>
    49.         <tr>
    50.               <td colspan="2">
    51.               </td>
    52.         </tr>
    53.         <tr>
    54.             <td colspan=2>
    55.             </td>
    56.         </tr>
    57.         </table>


    берем и вместо этого кода пишем что-нибудь вроде
    Код (CODE):
    1. <div id="forma"><a href="javascript:" onMouseOver="show_form()">Форма регистрации здесь!</a>

    и пишем простую функцию show_form()
    Код (CODE):
    1. function show_form() {
    2.         document.getElementById('forma').innerHTML='[[I]здесь код формы[/I]]';
    3.         }


    Только, конечно, вместо php-вставок надо написать нормальный текст буквами: "Имя", "Имя пользователя", "емайл", "пароль", "подтверждение пароля"

    Таким образом при загрузке страницы регистрации пользователь увидит надпись "Форма регистрации здесь!", полезет туда мышкой, а скрипт покажет форму.

    Примерно так я реализовал здесь
    Боты задумались
     
  9. pedro
    Offline

    pedro Недавно здесь

    Регистрация:
    27.04.2009
    Сообщения:
    2
    Симпатии:
    0
    Пол:
    Мужской
    Для версии я прикручивал KCAPTCHA так:

    в index.php:
    Код (PHP):
    1. // Set flag that this is a parent file
    2. define( '_JEXEC', 1 );
    3.  
    4. // Начало хака
    5. session_start();
    6. if(isset($_SESSION['captcha_keystring'])&&($_SESSION['captcha_keystring']==$_POST['captcha']))
    7.    $_POST['captcha']=1;
    8. else
    9.    $_POST['captcha']=0;
    10. session_destroy();
    11. // Конец хака
    12.  
    13. define('JPATH_BASE', dirname(__FILE__) );
    14.  
    15. // и теперь в конце файла-
    16.  
    17. // trigger the onAfterRender events
    18. JDEBUG ? $_PROFILER->mark('afterRender') : null;
    19. $mainframe->triggerEvent('onAfterRender');
    20.  
    21. // Начало хака
    22. JSession::close();
    23. // Конец хака
    24.  
    25. /**
    26.  * RETURN THE RESPONSE
    27.  */
    28. echo JResponse::toString($mainframe->getCfg('gzip'));


    Теперь в /components/com_user/controller.php:
    Код (PHP):
    1. function register_save()
    2.    {
    3.       global $mainframe;
    4.  
    5.       // Check for request forgeries
    6.       JRequest::checkToken() or die( 'Invalid Token' );
    7.  
    8.       // Get required system objects
    9.       $user       = clone(JFactory::getUser());
    10.       $pathway    =& $mainframe->getPathway();
    11.       $config      =& JFactory::getConfig();
    12.       $authorize   =& JFactory::getACL();
    13.       $document   =& JFactory::getDocument();
    14.  
    15. // Начало хака
    16.       if(1!==$_POST['captcha'])
    17.       {
    18.  
    19.          // To raise a warning
    20.          JError::raiseWarning( "Uno", "Неправильно введен код проверки. Попробуйте снова!", "Tre" );
    21.          $this->setRedirect('index.php?option=com_user&task=register');
    22.          return false;
    23.       }
    24.  
    25. // Конец хака


    Теперь добавим поле для ввода кода /components/com_user/views/register/tmpl/default.php
    Код (html):
    1. <tr>
    2.    <td colspan="2" height="40">
    3.       <?php echo JText::_( 'REGISTER_REQUIRED' ); ?>
    4.    </td>
    5. </tr>
    6. <td>
    7. <!-- Начало хака-->
    8.  
    9.  
    10. <?php //session_start(); ?>
    11.          <label for="captcha">Введите код проверки:</label>
    12.          <br />
    13.          <input type="text" name="captcha" class="inputbox" size="20" id="captcha" />
    14.          <br />
    15.          <img src="/kcaptcha/index.php?<?php echo session_name()?>=<?php echo session_id(); ?>" />
    16.  
    17.  
    18. <!--Конец хака-->
    19. </td>
    20. </table>
    21.    <button class="button validate" type="submit"><?php echo JText::_('Register'); ?></button>
    22.    <input type="hidden" name="task" value="register_save" />
    23.    <input type="hidden" name="id" value="0" />
    24.    <input type="hidden" name="gid" value="0" />
    25.    <?php echo JHTML::_( 'form.token' ); ?>
    26. </form>


    Конечно незабудьте перекодировать файлы в которых описание на русском в utf-8 без bom или вынисите описания в языковой файл компонента регистрации
     
    Последнее редактирование: 27.04.2009

Поделиться этой страницей

Загрузка...