Дата: января 10, 2010
Категория: Готовые решения
Теги: , , , , , ,  

Замена стандартной каптчи в форуме phpBB3

captchaСоздав форум на популярном движе phpBB3 я столкнулся с проблемой регистрации роботов на форуме, которые просто оставляли в профиле свои ссылки и ничего не делали. Так или иначе нужно было защитится. Для этого я решил заменить стандартную каптчу на каптчу kCaptcha с сайта captcha.ru

Итак инструкция по интеграции:

  1. Скачиваем архив с кодом каптчи с сайта.
  2. Копируем папки util, fonts, kcaptcha_config.php, kcaptcha.php в папку includes/captcha/ от корня  папки с форумом.
  3. Открываем файл kcaptcha_config.php и вносим изменения в такие строки:
    1. $length = mt_rand(5,6); заменяем на $length = mt_rand(4,6);
    2. $credits = ‘www.captcha.ru'; заменяем на $credits = ‘домен Вашего сайта';
  4. Открываем файл includes/ucp/ucp_confirm.php и заменяем в нем код
// Try and grab code for this id and session
 $sql = 'SELECT code, seed
 FROM ' . CONFIRM_TABLE . "
 WHERE session_id = '" . $db->sql_escape($user->session_id) . "'
 AND confirm_id = '" . $db->sql_escape($confirm_id) . "'
 AND confirm_type = $type";
 $result = $db->sql_query($sql);
 $row = $db->sql_fetchrow($result);
 $db->sql_freeresult($result);

 // If we have a row then grab data else create a new id
 if (!$row)
 {
 exit;
 }

 if ($config['captcha_gd'])
 {
 include($phpbb_root_path . 'includes/captcha/captcha_gd.' . $phpEx);
 }
 else
 {
 include($phpbb_root_path . 'includes/captcha/captcha_non_gd.' . $phpEx);
 }

 $captcha = new captcha();
 $captcha->execute($row['code'], $row['seed']);

на такой:

include($phpbb_root_path . 'includes/captcha/kcaptcha.' . $phpEx);
 $captcha = new KCAPTCHA();
 $sql = 'UPDATE `' . CONFIRM_TABLE . "`
 SET `code`='".$db->sql_escape($captcha->getKeyString())."'
 WHERE `session_id` = '" . $db->sql_escape($user->session_id) . "'
 AND `confirm_id` = '" . $db->sql_escape($confirm_id) . "'
 AND `confirm_type` = '$type'";
 $db->sql_query( $sql );

Все сделано. Можете проверять.

Пример можно посмотреть на картинке primer-captch-na-sayte

Написать ответ

 Имя

 Mail

 Сайт

[Имя и Mail обязательны для заполнения. Mail не будет опубликован.]


 9fce13c8-2714-4603-b8e7-33be6c785d58