как в стандартный модуль регистрации Joomla 1.5.8 поставить какой-нибудь плагин каптчи? чтоб просто скачать загрузить и готово! есть ли такие?
Joomla Captcha 4.3 Stable описание установки с картинками: ТУТ а сам дистриб. файлы: ТУТ . Все ясно и понятно...
А я форму регистрации жаба-скриптом спрятал. Не знаю насколько эффективно будет в дальнейшем, но боты пока не беспокоят
Советы конечно очень полезные 1. - serzhinio, - есть. 2. - я форму регистрации жаба-скриптом спрятал. Может хоть ссылочку какую где скачать, как настроить и тд. Спасибо!
Кагбе ваша ирония не совсем уместна имхо Когда я озадачился этой проблемой, а коды ковырять было лень, то достаточно быстро нашел вот это например: CAPTCHA для Joomla 1.0.15 Все очень доходчиво вроде. Другое дело, что мне например в принципе каптча не нравится (с точки зрения пользователя), и я по возможности стараюсь ее избегать. Поэтому попробовал "спрятать" саму форму регистрации, используя javascript. например, в файле registration.html.php есть функция registerForm, в ней код самой формы: Код (CODE): <div class="componentheading"> <?php echo _REGISTER_TITLE; ?> </div> <table cellpadding="0" cellspacing="0" border="0" width="100%" class="contentpane"> <tr> <td colspan="2"><?php echo _REGISTER_REQUIRED; ?></td> </tr> <tr> <td width="30%"> <?php echo _REGISTER_NAME; ?> * </td> <td> <input type="text" name="name" size="40" value="" class="inputbox" maxlength="50" /> </td> </tr> <tr> <td> <?php echo _REGISTER_UNAME; ?> * </td> <td> <input type="text" name="username" size="40" value="" class="inputbox" maxlength="25" /> </td> </tr> <tr> <td> <?php echo _REGISTER_EMAIL; ?> * </td> <td> <input type="text" name="email" size="40" value="" class="inputbox" maxlength="100" /> </td> </tr> <tr> <td> <?php echo _REGISTER_PASS; ?> * </td> <td> <input class="inputbox" type="password" name="password" size="40" value="" /> </td> </tr> <tr> <td> <?php echo _REGISTER_VPASS; ?> * </td> <td> <input class="inputbox" type="password" name="password2" size="40" value="" /> </td> </tr> <tr> <td colspan="2"> </td> </tr> <tr> <td colspan=2> </td> </tr> </table> берем и вместо этого кода пишем что-нибудь вроде Код (CODE): <div id="forma"><a href="javascript:" onMouseOver="show_form()">Форма регистрации здесь!</a> и пишем простую функцию show_form() Код (CODE): function show_form() { document.getElementById('forma').innerHTML='[[I]здесь код формы[/I]]'; } Только, конечно, вместо php-вставок надо написать нормальный текст буквами: "Имя", "Имя пользователя", "емайл", "пароль", "подтверждение пароля" Таким образом при загрузке страницы регистрации пользователь увидит надпись "Форма регистрации здесь!", полезет туда мышкой, а скрипт покажет форму. Примерно так я реализовал здесь Боты задумались
Для версии я прикручивал KCAPTCHA так: в index.php: Код (PHP): // Set flag that this is a parent file define( '_JEXEC', 1 ); // Начало хака session_start(); if(isset($_SESSION['captcha_keystring'])&&($_SESSION['captcha_keystring']==$_POST['captcha'])) $_POST['captcha']=1; else $_POST['captcha']=0; session_destroy(); // Конец хака define('JPATH_BASE', dirname(__FILE__) ); // и теперь в конце файла- // trigger the onAfterRender events JDEBUG ? $_PROFILER->mark('afterRender') : null; $mainframe->triggerEvent('onAfterRender'); // Начало хака JSession::close(); // Конец хака /** * RETURN THE RESPONSE */ echo JResponse::toString($mainframe->getCfg('gzip')); Теперь в /components/com_user/controller.php: Код (PHP): function register_save() { global $mainframe; // Check for request forgeries JRequest::checkToken() or die( 'Invalid Token' ); // Get required system objects $user = clone(JFactory::getUser()); $pathway =& $mainframe->getPathway(); $config =& JFactory::getConfig(); $authorize =& JFactory::getACL(); $document =& JFactory::getDocument(); // Начало хака if(1!==$_POST['captcha']) { // To raise a warning JError::raiseWarning( "Uno", "Неправильно введен код проверки. Попробуйте снова!", "Tre" ); $this->setRedirect('index.php?option=com_user&task=register'); return false; } // Конец хака Теперь добавим поле для ввода кода /components/com_user/views/register/tmpl/default.php Код (html): <tr> <td colspan="2" height="40"> <?php echo JText::_( 'REGISTER_REQUIRED' ); ?> </td> </tr> <td> <!-- Начало хака--> <?php //session_start(); ?> <label for="captcha">Введите код проверки:</label> <br /> <input type="text" name="captcha" class="inputbox" size="20" id="captcha" /> <br /> <img src="/kcaptcha/index.php?<?php echo session_name()?>=<?php echo session_id(); ?>" /> <!--Конец хака--> </td> </table> <button class="button validate" type="submit"><?php echo JText::_('Register'); ?></button> <input type="hidden" name="task" value="register_save" /> <input type="hidden" name="id" value="0" /> <input type="hidden" name="gid" value="0" /> <?php echo JHTML::_( 'form.token' ); ?> </form> Конечно незабудьте перекодировать файлы в которых описание на русском в utf-8 без bom или вынисите описания в языковой файл компонента регистрации