В предыдущей статьи рассматривали внедрение captcha в стандартный компонент контактов. Теперь будем делать тоже самое для регистрации пользователей. Эти две статьи взаимосвязаны, и кое что будет браться из первой.
Итак приступаем.
У нас уже есть изменения в корневом index.php (из прошлой статьи). Остались файлы
- /components/com_user/controller.php
- /components/com_user/views/register/tmpl/default.php
2) Открываем controller.php и ищем ~226 строку:
// Get required system objects
$user = clone(JFactory::getUser());
$pathway =& $mainframe->getPathway();
$config =& JFactory::getConfig();
$authorize =& JFactory::getACL();
$document =& JFactory::getDocument();
После этих строк, вставляем:
if ($_POST['captcha'] !== 1) {
JError::raiseWarning( 403, JText::_( 'Enter captcha code' ));
$this->setRedirect('index.php?option=com_user&task=register');
return false;
}
3) /components/com_user/views/register/tmpl/default.php Строка ~73, код выглядит так:
<td>
<input class="inputbox required validate-passverify" type="password" id="password2" name="password2" size="40" value="" /> *
</td>
</tr>
После этого вставляем наш фрагмент:
<tr>
<td height="60">
<label for="captcha">
<?php echo JText::_( 'Enter captcha text' ); ?>:
</label>
</td>
<td>
<input type="text" name="captcha" class="inputbox" size="20" id="captcha" /> *
<img src="<?php JURI::root() ?>libraries/kcaptcha/index.php?<?php echo session_name(); ?>=<?php echo session_id(); ?>" alt="Captcha" style="vertical-align:-25px;" />
</td>
</tr>
Готово.
