reCAPTCHA при постах

Здесь авторы могут постить бета-версии своих модификаций для phpBB 3.0.x. Внимание! Не устанавливайте бета-версии модов на работающие форумы!
Правила форума
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Переход на 3.0.6 и выше | FAQ-3 (phpbb3) | Как задавать вопросы | Как устанавливать моды

Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ;) ).
Аватара пользователя
Drag
phpBB 1.2.0
Сообщения: 10
Стаж: 17 лет 4 месяца

reCAPTCHA при постах

Сообщение Drag »

Лучшей капчи пока не видел. Ниодин бот не пролез. Но вот незадача. Для PHPBB 2 есть мод на регистрацию и на постинг, а вот на 3й только на регистрацию. Поскольку у меня форум с возможностью писать незарегенными, замучались модеры удалять спам. Жаловались они жаловались и я решил что-то сделать. Перерыл инет, но больше подобных описаний не нашел.
Итак, встраивание reCAPTCHA в оправку сообщений незарегенными пользователями
Править необходимо следующие файлы:
posting.php (в корне форума)
posting_body.html (styles/your_template/template)

Ну конечно же делаем бекапы обоих файлов. Данное описание ТОЛЬКО для тех у кого уже стоит капча на регистрацию. Потому как описывать процесс получения ключей и копирования себе recaptchalib.php я не буду.

Для начала правим posting_body.html
1. Ищем там <!-- IF S_CONFIRM_CODE -->
И заменяем эту строку на <!-- IF RECAPTCHA_CODE -->
2. В этом же блоке удаляем две строки
<td class="row1"><b class="genmed">{L_CONFIRM_CODE}: </b><br /><span class="gensmall">{L_CONFIRM_CODE_EXPLAIN}</span></td>
<td class="row2"><input class="post" type="text" name="confirm_code" size="8" maxlength="8" /></td>
Вместо них туда пишем
<td class="row1"><span class="gen">{L_CONFIRM_CODE}: * </span></td>
<td class="row2">{RECAPTCHA_CODE}</td>
Теперь правим posting.php
1. В самом начале файла после <?php и каких-то комментариев пишем
require_once($phpbb_root_path . 'includes/captcha/recaptchalib.php'); //(проследите, что бы путь был верный)
$recaptcha_public_key = 'паблик кей';
$recaptcha_private_key = 'приват кей';
$recaptcha_code = null;
Ключи надо написать конечно же, которые вы получили.
2. Находим $solved_captcha = false; и комментируем
3. Находим блок
if ($config['enable_post_confirm'] && !$user->data['is_registered'] && in_array($mode, array('quote', 'post', 'reply')))
И все его внутренности комментируем или удаляем.
А вместо них пишем туда:

Код: Выделить всё

		$recaptcha_response =  recaptcha_check_answer ($recaptcha_private_key, $user->ip, $_POST['recaptcha_challenge_field'], $_POST['recaptcha_response_field']); 	
		if (!$recaptcha_response->is_valid)
		{
			$recaptcha_code = recaptcha_get_html ($recaptcha_public_key, $recaptcha_response->error);
			$error[] = $user->lang['CONFIRM_CODE_WRONG'];
		}
В итоге должно выйти что-то вроде такого:

Код: Выделить всё

	if ($config['enable_post_confirm'] && !$user->data['is_registered'] && in_array($mode, array('quote', 'post', 'reply')))
	{
		$recaptcha_response =  recaptcha_check_answer ($recaptcha_private_key, $user->ip, $_POST['recaptcha_challenge_field'], $_POST['recaptcha_response_field']); 	
		if (!$recaptcha_response->is_valid)
		{
 			//$error = TRUE;
			$recaptcha_code = recaptcha_get_html ($recaptcha_public_key, $recaptcha_response->error);
			$error[] = $user->lang['CONFIRM_CODE_WRONG'];
		}
	}
4. Находим
if ($config['enable_post_confirm'] && !$user->data['is_registered'] && $solved_captcha === false && ($mode == 'post' || $mode == 'reply' || $mode == 'quote'))
Заменяем на
if ($config['enable_post_confirm'] && !$user->data['is_registered'] && ($mode == 'post' || $mode == 'reply' || $mode == 'quote'))
5. Опять же внутренности этого блока комментируем или удаляем. А вместо них

Код: Выделить всё

        if (!$recaptcha_code)
        	$recaptcha_code = recaptcha_get_html ($recaptcha_public_key, null);

	$template->assign_vars(array(
		'RECAPTCHA_CODE'			=> $recaptcha_code));
Получится так:

Код: Выделить всё

if ($config['enable_post_confirm'] && !$user->data['is_registered'] && ($mode == 'post' || $mode == 'reply' || $mode == 'quote'))
{
        if (!$recaptcha_code)
        	$recaptcha_code = recaptcha_get_html ($recaptcha_public_key, null);

	$template->assign_vars(array(
		'RECAPTCHA_CODE'			=> $recaptcha_code));
}

Ну вот и все. Ошибок пока не обнаружил. Так что, если кто-то что-то найдет, просьба, сообщайте.
Работает сейчас на моем форуме: http://jesus-life.org/forum/index.php
Аватара пользователя
Палыч
Former team member
Сообщения: 9683
Стаж: 20 лет 4 месяца
Откуда: Питер
Благодарил (а): 3 раза
Поблагодарили: 454 раза

Re: reCAPTCHA при постах

Сообщение Палыч »

Перенесено из Запросов.
Не все то WINDOWS, что висит... phpBB только учусь.
ICQ, email, ЛС - только для личных сообщений. Вопросы по phpbb только на форумах. По найму не работаю.
Аватара пользователя
Drag
phpBB 1.2.0
Сообщения: 10
Стаж: 17 лет 4 месяца

Re: reCAPTCHA при постах

Сообщение Drag »

Поскольку могли возникнуть вопросы по установке reCAPTCHA, напишу как я ставил себе:

Files you will need:
reCAPTCHA PHP plugin, available at:
http://code.google.com/p/recaptcha/downloads/list

Extract the file 'recaptchalib.php' and place it in:
%phpbb_root_path%/includes/captcha

Files that will be modified in your phpBB3 directory:
%phpbb_root_path%/styles/prosilver/template/ucp_register.html
%phpbb_root_path%/includes/ucp/ucp_register.php

Code to modify:
In ucp_register.html, locate:
<dd>{CONFIRM_IMG}</dd>

Then delete the following lines of code or comment them out:
<dd><input type="text" name="confirm_code" id="confirm_code" size="8"
maxlength="8" class="inputbox narrow" title="{L_CONFIRM_CODE}" /></dd>
<dd>{L_CONFIRM_CODE_EXPLAIN}</dd>

In ucp_register.php, there are many changes that you'll have to make,
so I'll have to make the instructions compact.

/*Step 1. Place this code before the line "class ucp_register," which
is near the top of ucp_register.php*/

require_once($phpbb_root_path . 'includes/captcha/recaptchalib.' .
$phpEx);

/*Step 2. Place this code after the line "global $config, $db, $user,
$auth, $template, $phpbb_root_path, $phpEx;" which is a few lines
after step 1.*/

// Get a key from http://recaptcha.net/api/getkey
$publickey = '';
$privatekey = '';

# the response from reCAPTCHA
$resp = null;
# the error code from reCAPTCHA, if any
$error = null;

/*Step 3. Place this code on the line "$confirm_id =
request_var('confirm_id', '');" in other words, replace the original
code with this new code*/

$confirm_id = (isset($_POST['recaptcha_response_field']));

/*Step 4. Comment out or delete the following line of code.*/

'confirm_code' => array('string', !$config['enable_confirm'], 5, 8),

/*Step 5a. Go to the section:
// Visual Confirmation handling
$wrong_confirm = false;
if ($config['enable_confirm'])*/
if (!$confirm_id) {
}
else {
/* Comment out or delete all code within the first else statement
(which has nested if...else statements within it) and replace with the
code in Step 5b.*/
}

}

/*Step 5b. Place the following code within the first else statement.*/
$resp = recaptcha_check_answer ($privatekey,
$_SERVER["REMOTE_ADDR"],

$_POST["recaptcha_challenge_field"],

$_POST["recaptcha_response_field"]);

if ($resp->is_valid == false) {
$error[] = $user->lang['CONFIRM_CODE_WRONG'];
$wrong_confirm = true;

/*Step 6. Comment out or delete everything between the following two
lines of code. The two lines themselves are also deleted. In total,
you should be deleting about 13 non-empty lines of code*/
//first line of code.
$code = gen_rand_string(mt_rand(5, 8));

//last line of code
$db->sql_query($sql);

/*Step 7. A few lines after the end of Step 6, replace "$confirm_image
= " and its values with the following line of code. Basically, you're
assigning the variable $confirm_image with a new value.

$confirm_image = recaptcha_get_html($publickey, $error);

Step 8. You should be done. I hope. It works for me on my development
webserver, on a basically vanilla version of phpbb3.

Взял отсюда:
http://groups.google.com/group/recaptch ... d06c08db50
Vitaliy21
phpBB 1.4.2
Сообщения: 62
Стаж: 17 лет 5 месяцев
Откуда: Ukraine, Zaporozhe
Благодарил (а): 1 раз
Поблагодарили: 1 раз

Re: reCAPTCHA при постах

Сообщение Vitaliy21 »

Drag

Спасибо!
Только я не совсем понял что нужно делать в шаге 5а и b
Аватара пользователя
Drag
phpBB 1.2.0
Сообщения: 10
Стаж: 17 лет 4 месяца

Re: reCAPTCHA при постах

Сообщение Drag »

Все просто, как в моей инструкции. Удалить или закомментировать все в конструкции else, а туда засунуть 5б кусок кода.
Должно получится:

Код: Выделить всё

			$wrong_confirm = false;
			if ($config['enable_confirm'])
			{
				if (!$confirm_id)
				{
					$error[] = $user->lang['CONFIRM_CODE_WRONG'];
					$wrong_confirm = true;
				}
				else
				{
					$resp = recaptcha_check_answer ($privatekey,
                                        	$_SERVER["REMOTE_ADDR"],
						$_POST["recaptcha_challenge_field"],
						$_POST["recaptcha_response_field"]);

					if ($resp->is_valid == false) {
						$error[] = $user->lang['CONFIRM_CODE_WRONG'];
						$wrong_confirm = true; 
					}
				}
			}
Vitaliy21
phpBB 1.4.2
Сообщения: 62
Стаж: 17 лет 5 месяцев
Откуда: Ukraine, Zaporozhe
Благодарил (а): 1 раз
Поблагодарили: 1 раз

Re: reCAPTCHA при постах

Сообщение Vitaliy21 »

Drag

спасибо...
но всё равно что-то не работает..(
инструкция не сильно понятна, может я что-то не правильно делаю...

На всякий случай прикрепил свой ucp_register.php, там один оригинал какой был до изменения, а другой в котором я делал изменения для установки рекапчи
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Аватара пользователя
Drag
phpBB 1.2.0
Сообщения: 10
Стаж: 17 лет 4 месяца

Re: reCAPTCHA при постах

Сообщение Drag »

Долго не смотрел.

Одна ошибка точно есть. Может и еще есть, но ты для начала исправь эту.

Код: Выделить всё

// Get a key from http://recaptcha.net/api/getkey 
$publickey = ''; 
$privatekey = ''; 
Для тех, кто мучался как я когда-то с этой reCAPTCHA
Т.к. этой инструкции тоже не нашел в инете, пусть будет тут.

Английским комент написан не случайно
Это означает, что капча сама по себе работать не будет. Ей нужно соединение с сервером для генерации кода. Для этого соединения ей надо публичный и приватный ключи. Получить эти ключи можно лишь зарегевшись на их сайте и прописав там свой домен, где будут использоваться эта капча. Предполагаю что делаеться это для твоей же безопасности. Очень часто обходят капчи путем помещения твоей капчи на порно сайте, где надо ее вбить и получить доступ к картинке. Там ставят твою капчю, настоящий человек вбивает ее, они берут этот текст и тулят в твой сайт и получают доступ. А эта капча на стороннем сайте не высветится. Может из-за этого вся муть с ключами.
КОРОЧЕ. ключи надо вставить в соответствующие переменные в ucp_register.php. Иначе работать не будет.
Vitaliy21
phpBB 1.4.2
Сообщения: 62
Стаж: 17 лет 5 месяцев
Откуда: Ukraine, Zaporozhe
Благодарил (а): 1 раз
Поблагодарили: 1 раз

Re: reCAPTCHA при постах

Сообщение Vitaliy21 »

Drag писал(а):Одна ошибка точно есть. Может и еще есть, но ты для начала исправь эту.
Да, я знаю про это, я специально когда выложил ucp_register оставил поля пустыми, чтобы небыло видно моего кода :)

А на счет проблемы, у меня после замены ucp_register, не стала загружаться страничка регистрации, белая страница показываеться, либо ошибка в браузере((

Я скорее всего пункт 5а и b не правильно сделать, но понять не могу что именно не правильно...
Аватара пользователя
Drag
phpBB 1.2.0
Сообщения: 10
Стаж: 17 лет 4 месяца

Re: reCAPTCHA при постах

Сообщение Drag »

Да есть ошибка еще.
Довольно странная версия форума у тебя....

Знач у тебя строка 269-278:

Код: Выделить всё

$resp = recaptcha_check_answer ($privatekey,
$_SERVER["REMOTE_ADDR"],

$_POST["recaptcha_challenge_field"],

$_POST["recaptcha_response_field"]);

if ($resp->is_valid == false) {
$error[] = $user->lang['CONFIRM_CODE_WRONG'];
$wrong_confirm = true;
Надо:

Код: Выделить всё

			// Visual Confirmation handling
			$wrong_confirm = false;
			if ($config['enable_confirm'])
			{
				if (!$confirm_id)
				{
					$error[] = $user->lang['CONFIRM_CODE_WRONG'];
					$wrong_confirm = true;
				}
				else
				{
					$resp = recaptcha_check_answer ($privatekey,
                                        	$_SERVER["REMOTE_ADDR"],
						$_POST["recaptcha_challenge_field"],
						$_POST["recaptcha_response_field"]);

					if ($resp->is_valid == false) {
						$error[] = $user->lang['CONFIRM_CODE_WRONG'];
						$wrong_confirm = true; 
					}
				}
Обрати внимание, что у тебя сейчас одна лишняя закрывающаяся скобка в строке 279, потому белая страница.

P.S. фу как некрасиво попапы на порносайты.
Vitaliy21
phpBB 1.4.2
Сообщения: 62
Стаж: 17 лет 5 месяцев
Откуда: Ukraine, Zaporozhe
Благодарил (а): 1 раз
Поблагодарили: 1 раз

Re: reCAPTCHA при постах

Сообщение Vitaliy21 »

Drag писал(а):Довольно странная версия форума у тебя....
3.0.4

Это просто я что-то начудил..)
Даже и после этого всё равно не работало...

Вот что я правил в ucp_register.php для установки рекапчи: (поправь если что не парвильно)

Шаг 1.
Найти:

Код: Выделить всё

class ucp_register
Добавить перед найденим

Код: Выделить всё

require_once($phpbb_root_path . 'includes/captcha/recaptchalib.' . 
$phpEx);
Шаг 2.
Найти:

Код: Выделить всё

global $config, $db, $user, $auth, $template, $phpbb_root_path, $phpEx;
Добавить после найденного:

Код: Выделить всё

// Get a key from http://recaptcha.net/api/getkey 
$publickey = ''; 
$privatekey = ''; 

# the response from reCAPTCHA 
$resp = null; 
# the error code from reCAPTCHA, if any 
$error = null;
Шаг 3.
Найти:

Код: Выделить всё

$confirm_id = '';
Заменить на:

Код: Выделить всё

$ confirm_id = (isset ($ _POST [ 'recaptcha_response_field']));
Шаг 4.
Удалить строку, или закоментировать:

Код: Выделить всё

'confirm_code'		=> array('string', !$config['enable_confirm'], 5, 8),
Шаг 5.
Найти:

Код: Выделить всё

			// Visual Confirmation handling
			$wrong_confirm = false;
			if ($config['enable_confirm'])
			{
				if (!$confirm_id)
				{
					$error[] = $user->lang['CONFIRM_CODE_WRONG'];
					$wrong_confirm = true;
				}
				else
				{
					$sql = 'SELECT code
						FROM ' . CONFIRM_TABLE . "
						WHERE confirm_id = '" . $db->sql_escape($confirm_id) . "'
							AND session_id = '" . $db->sql_escape($user->session_id) . "'
							AND confirm_type = " . CONFIRM_REG;
					$result = $db->sql_query($sql);
					$row = $db->sql_fetchrow($result);
					$db->sql_freeresult($result);

					if ($row)
					{
						if (strcasecmp($row['code'], $data['confirm_code']) === 0)
						{
							$sql = 'DELETE FROM ' . CONFIRM_TABLE . "
								WHERE confirm_id = '" . $db->sql_escape($confirm_id) . "'
									AND session_id = '" . $db->sql_escape($user->session_id) . "'
									AND confirm_type = " . CONFIRM_REG;
							$db->sql_query($sql);
						}
						else
						{
							$error[] = $user->lang['CONFIRM_CODE_WRONG'];
							$wrong_confirm = true;
						}
					}
					else
					{
						$error[] = $user->lang['CONFIRM_CODE_WRONG'];
						$wrong_confirm = true;
					}
				}
Найти код, внутри предыдущего:

Код: Выделить всё

					$sql = 'SELECT code
						FROM ' . CONFIRM_TABLE . "
						WHERE confirm_id = '" . $db->sql_escape($confirm_id) . "'
							AND session_id = '" . $db->sql_escape($user->session_id) . "'
							AND confirm_type = " . CONFIRM_REG;
					$result = $db->sql_query($sql);
					$row = $db->sql_fetchrow($result);
					$db->sql_freeresult($result);

					if ($row)
					{
						if (strcasecmp($row['code'], $data['confirm_code']) === 0)
						{
							$sql = 'DELETE FROM ' . CONFIRM_TABLE . "
								WHERE confirm_id = '" . $db->sql_escape($confirm_id) . "'
									AND session_id = '" . $db->sql_escape($user->session_id) . "'
									AND confirm_type = " . CONFIRM_REG;
							$db->sql_query($sql);
						}
						else
						{
							$error[] = $user->lang['CONFIRM_CODE_WRONG'];
							$wrong_confirm = true;
						}
					}
					else
					{
						$error[] = $user->lang['CONFIRM_CODE_WRONG'];
						$wrong_confirm = true;
					}
И заменить на:

Код: Выделить всё

$resp = recaptcha_check_answer ($privatekey, 
                                        $_SERVER["REMOTE_ADDR"], 

$_POST["recaptcha_challenge_field"], 

$_POST["recaptcha_response_field"]); 

if ($resp->is_valid == false) { 
$error[] = $user->lang['CONFIRM_CODE_WRONG']; 
$wrong_confirm = true;
Шаг 6.
Комментировать или удалить строчки:

Код: Выделить всё

$code = gen_rand_string(mt_rand(5, 8));
и

Код: Выделить всё

$db->sql_query($sql);
Шаг 7.
Найти:

Код: Выделить всё

$confirm_image = '';
Заменить на:

Код: Выделить всё

$confirm_image = recaptcha_get_html($publickey, $error);
Что именно тут неправильного?
Последний раз редактировалось Vitaliy21 29.04.2009 13:38, всего редактировалось 1 раз.
Аватара пользователя
Drag
phpBB 1.2.0
Сообщения: 10
Стаж: 17 лет 4 месяца

Re: reCAPTCHA при постах

Сообщение Drag »

Масса ошибок, но в файле у тебя том было все правильно кроме моего комментария.
Просто проследи что бы у тебя было так и все заработает. Если нет, опять привяжи в аатаче файл.

Код: Выделить всё

			// validate custom profile fields
			$cp->submit_cp_field('register', $user->get_iso_lang_id(), $cp_data, $error);

			// Visual Confirmation handling
			$wrong_confirm = false;
			if ($config['enable_confirm'])
			{
				if (!$confirm_id)
				{
					$error[] = $user->lang['CONFIRM_CODE_WRONG'];
					$wrong_confirm = true;
				}
				else
				{
					$resp = recaptcha_check_answer ($privatekey,
                                        	$_SERVER["REMOTE_ADDR"],
						$_POST["recaptcha_challenge_field"],
						$_POST["recaptcha_response_field"]);

					if ($resp->is_valid == false) {
						$error[] = $user->lang['CONFIRM_CODE_WRONG'];
						$wrong_confirm = true; 
					}
				}
			}

			if (!sizeof($error))
Аватара пользователя
DK7
Former team member
Сообщения: 1008
Стаж: 20 лет 2 месяца
Откуда: Кишинёв
Благодарил (а): 3 раза
Поблагодарили: 25 раз

Re: reCAPTCHA при постах

Сообщение DK7 »

Vitaliy21
исправляем сообщение, используем соответствующие теги, иначе забаню.
Аватара пользователя
Drag
phpBB 1.2.0
Сообщения: 10
Стаж: 17 лет 4 месяца

Re: reCAPTCHA при постах

Сообщение Drag »

Сорри протупил, одну ошибку не заметил
Высылаю тебе ucp_register
переименуй его в php и не забуть ключи туда свои втулить

Шаблонный файл у тебя впорядке.

Есть еще одна догадка, но сначала попробуй это.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Vitaliy21
phpBB 1.4.2
Сообщения: 62
Стаж: 17 лет 5 месяцев
Откуда: Ukraine, Zaporozhe
Благодарил (а): 1 раз
Поблагодарили: 1 раз

Re: reCAPTCHA при постах

Сообщение Vitaliy21 »

DK7 писал(а):исправляем сообщение, используем соответствующие теги, иначе забаню.
исправил, не хотел злоупотреблять ввкодом

Код: Выделить всё

Ну раз сделали замечание - поправил!

[b]Drag[/b]
Спасибо большое!!! Сейчас работает!
Аватара пользователя
Drag
phpBB 1.2.0
Сообщения: 10
Стаж: 17 лет 4 месяца

Re: reCAPTCHA при постах

Сообщение Drag »

Что бы тут не фигурировала неверная установка reCAPTCHA, пишу правильный перевод на русский.

Вам нужны будут файлы:
reCAPTCHA PHP plugin, скачать тут:
http://code.google.com/p/recaptcha/downloads/list

В архиве распаковать и поместить себе 'recaptchalib.php' в:
%phpbb_root_path%/includes/captcha

Файлы необходимые для изменения:
%phpbb_root_path%/styles/prosilver/template/ucp_register.html
%phpbb_root_path%/includes/ucp/ucp_register.php

Изменяем:
В ucp_register.html, находим:
<dd>{CONFIRM_IMG}</dd>

Удаляем или комментируем следующие строки кода:
<dd><input type="text" name="confirm_code" id="confirm_code" size="8"
maxlength="8" class="inputbox narrow" title="{L_CONFIRM_CODE}" /></dd>
<dd>{L_CONFIRM_CODE_EXPLAIN}</dd>

В ucp_register.php, много изменений, потому разобьем их на шаги.

/*Шаг 1. Следующий код вставить до строки "class ucp_register," которая почти в самом начале файла ucp_register.php*/

require_once($phpbb_root_path . 'includes/captcha/recaptchalib.' .
$phpEx);

/*Шаг 2. Поместить данный код после "global $config, $db, $user,
$auth, $template, $phpbb_root_path, $phpEx;" который идет через несколько строк после шага 1.*/

// Получить ключи тут http://recaptcha.net/api/getkey
$publickey = '';
$privatekey = '';

# the response from reCAPTCHA
$resp = null;
# the error code from reCAPTCHA, if any
$error = null;

/*Шаг 3. Найти вот этот кусок кода: "$confirm_id =
request_var('confirm_id', '');" И заменить его следующим кодом*/

$confirm_id = (isset($_POST['recaptcha_response_field']));

/*Шаг 4. Удалить или за комментировать следующую строку.*/

'confirm_code' => array('string', !$config['enable_confirm'], 5, 8),

/*Шаг 5a. Найти секцию:
// Visual Confirmation handling
$wrong_confirm = false;
if ($config['enable_confirm'])*/
if (!$confirm_id) {
}
else {
/*Вот тут надо все между фигурными скобками удалить или комментировать, всю внутренность этого else блока
Потом сюда вставить код из шага 5b.*/
}

}

/*Шаг 5b. Вставить следующий кусок кода в else блок.*/
$resp = recaptcha_check_answer ($privatekey,
$_SERVER["REMOTE_ADDR"],

$_POST["recaptcha_challenge_field"],

$_POST["recaptcha_response_field"]);

if ($resp->is_valid == false) {
$error[] = $user->lang['CONFIRM_CODE_WRONG'];
$wrong_confirm = true;

/*Шаг 6. Удалить или комментировать все строки между следующими двумя строками.
Эти две строки тоже должны быть удалены или комментированы.*/
//Комментируем от этой строки.
$code = gen_rand_string(mt_rand(5, 8));

//и аж до этой
$db->sql_query($sql);

/*Шаг 7. Сразу же за этими строками в шаге 6 будет присвоение значения переменной $confirm_image.
заменить это присваивание следующим

$confirm_image = recaptcha_get_html($publickey, $error);

Шаг 8. Это все, у меня на двух форумах отлично работает.
Далее необходимо проделать инструкцию из моего первого сообщения в этой теме и получаем полнофункциональную reCAPTCHA.

Вернуться в «Бета-версии модов для phpBB 3.0.x»