Перейти к контенту

[2.3.x]Advanced Bot Defence (для 2.2.х)


Рекомендуемые сообщения

  • 2 недели спустя...
  • Ответы 87
  • Создана
  • Последний ответ

Лучшие авторы в этой теме

Лучшие авторы в этой теме

После установки мода, во время активации пользователя появляется такое предупреждение.

 

Как его пофиксить?

 

 

ПРЕДУПРЕЖДЕНИЕ: [2] preg_match() [function.preg-match]: Compilation failed: repeated subpattern is too long at offset 31688 (Строка: 197 файла /sources/classes/class_session.php)

Ссылка на комментарий
Поделиться на других сайтах

  • 3 месяца спустя...

Помогите пожалуйста!

 

Правим файл сурс\акшон_паблик\register.php

найти:

		//-----------------------------------------
	// Check the reg_code
	//-----------------------------------------

	if ($this->ipsclass->vars['bot_antispam'])
	{
		if ( $this->ipsclass->input['regid'] == "" )
		{
			$form_errors['general'][] = $this->ipsclass->lang['err_reg_code'];
		}

		$this->ipsclass->DB->build_query( array( 'select' => '*',
													  'from'   => 'reg_antispam',
													  'where'  => "regid='".trim($this->ipsclass->txt_alphanumerical_clean($this->ipsclass->input['regid']))."'"
											 )      );

		$this->ipsclass->DB->exec_query();

		if ( ! $row = $this->ipsclass->DB->fetch_row() )
		{
			$form_errors['general'][] = $this->ipsclass->lang['err_reg_code'];
		}

		if ( trim( $this->ipsclass->txt_alphanumerical_clean($this->ipsclass->input['reg_code']) ) != $row['regcode'] )
		{
			$form_errors['general'][] = $this->ipsclass->lang['err_reg_code'];
		}

		$this->ipsclass->DB->do_delete( 'reg_antispam', "regid='".trim($this->ipsclass->txt_alphanumerical_clean($this->ipsclass->input['regid']))."'" );
	}

 

Заменить на:

 

	if ($this->ipsclass->vars['bot_antispam'])
	{
		if ( $this->ipsclass->input['regid'] == "" )
		{
			$form_errors['general'][] = $this->ipsclass->lang['err_reg_code'];
		}

		$this->ipsclass->DB->simple_construct( array( 'select' => '*',
													  'from'   => 'reg_antispam',
													  'where'  => "regid='".trim(addslashes($this->ipsclass->input['regid']))."'"
											 )      );

		$this->ipsclass->DB->simple_exec();

		if ( ! $row = $this->ipsclass->DB->fetch_row() )
		{
			$form_errors['general'][] = $this->ipsclass->lang['err_reg_code'];
		}

		if (((int)$row['type'] == 0) || ((int)$row['type'] == 2) || ((int)$row['type'] == -1))
		{
			if ( trim( $this->ipsclass->input['reg_code'] ) != $row['regcode'] )
			{
				$form_errors['general'][] = $this->ipsclass->lang['err_reg_code'];
			}
		}
		else
		{
			$code_array = array();

			$code_array = explode("+", $row['regcode']);
			$sum_result = intval($code_array[0]) + intval(substr($code_array[1], 0, strlen($code_array[1])-1));

			if ( trim( $this->ipsclass->input['reg_code'] ) != $sum_result )
			{
				$form_errors['general'][] = $this->ipsclass->lang['err_reg_code'];
			}
		}

		$this->ipsclass->DB->simple_exec_query( array( 'delete' => 'reg_antispam', 'where' => "regid='".trim(addslashes($this->ipsclass->input['regid']))."'" ) );
	}

 

После этого страница регистрации форум/index.php?act=Reg&CODE=00 отображается просто белой страницей! при возврате прежнего кода все ок!

отблагодарю на пиво....

Ссылка на комментарий
Поделиться на других сайтах

Помогите пожалуйста беда:

 

Parse error: parse error, unexpected T_IF, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or '}' in /www/realplay/www/htdocs/forum/sources/action_public/register.php on line 2135

 

строка:

if ( count( $form_errors ) )

 

		//-----------------------------------------
	// CHECK 2: Any errors (duplicate names, etc)?
	//-----------------------------------------

	if ( count( $form_errors ) )
	{
		$this->show_reg_form( $form_errors );
		return;
	}

 

ипб 2.3.4

 

Сам файл

Ссылка на комментарий
Поделиться на других сайтах

Мод поставил, работает замечательно, но при заходе на страницу регистрации все страницы, связанные с регистрацией становится на английском языке! Где копать?

------------------

З.Ы. Это у меня локально копия форума какая-то кривая. Сделал все на сервере - там все нормально и без ошибок.

Совет тем, у кого ошибки: внимательно читайте инструкцию по установке! При вставке кода особенно внимательно обращайте внимание на скобки.

Ссылка на комментарий
Поделиться на других сайтах

А все-таки есть ошибка в моде: рядом с защитной картинкой неправильно выводит описание, точнее всегда выводит только общее:"Введите защитный код", а надо в зависимости от настроек режима:

'bot_0' => 'Введите 6 символов показаных на рисунке',

'bot_1' => 'Введите результат математическаого выражения (можно использовать калькулятор)',

 

Для исправления в шаблоне advanced_bot_defence пропишите такой код:

<br /> <input type="hidden" name="regid" value="$regid" />
<fieldset class="row3">
<legend><b>{$this->ipsclass->lang['las_title']}</b></legend>
<table class='ipbtable' cellspacing="0">
<tr>
<td width="1%">
{$this->ipsclass->lang[$lang_id]}<div class="desc"><span style="color:red;">{$this->ipsclass->lang['{$lang_id}']}</span>
<a href="java script:PopUp('cache/skin_cache/help.html','Registration Help','500','450','0','1','1','1')"><img src="style_images/<#IMG_DIR#>/help.png" border="0"></a>
</div>
<input type="text" size="25" maxlength="32" name="reg_code" />
</td>
<td align="center"><img src="{$this->ipsclass->base_url}act=Reg&CODE=image&rc={$regid}" alt="Loading Image" /></td>
</tr>
</table>
</fieldset>

 

И еще. В этом шаблоне строчка

<a href="java script:PopUp('cache/skin_cache/help.html','Registration Help','500','450','0','1','1','1')"><img src="style_images/<#IMG_DIR#>/help.png" border="0"></a>

выводит всплывающее окно подсказки. Но оно работает только в Firefox, а в IE нет! Не знаю почему, может кто объяснит? (всплывающие окна разрешены)

Ссылка на комментарий
Поделиться на других сайтах

Помогите пожалуйста беда:

 

Parse error: syntax error, unexpected T_IF, expecting T_FUNCTION in public_html/forum/sources/action_public/register.php on line 2139

 

строка:

//-----------------------------------------
	// CHECK 2: Any errors (duplicate names, etc)?
	//-----------------------------------------

	if ( count( $form_errors ) )
	{
		$this->show_reg_form( $form_errors );
		return;
	}

 

ипб 2.3.4

 

Обсолютно такая же проблема. Может кто-нибудь выложить этот файл register.php уже готовый ( отредактированный)?

Ссылка на комментарий
Поделиться на других сайтах

Обсолютно такая же проблема. Может кто-нибудь выложить этот файл register.php уже готовый ( отредактированный)?

Выкладываю, версия форума 2.3.5.

Ссылка на комментарий
Поделиться на других сайтах

Обсолютно такая же проблема. Может кто-нибудь выложить этот файл register.php уже готовый ( отредактированный)?

Выкладываю, версия форума 2.3.5.

 

ура! все работает! спасибо!

Ссылка на комментарий
Поделиться на других сайтах

Обсолютно такая же проблема. Может кто-нибудь выложить этот файл register.php уже готовый ( отредактированный)?

Выкладываю, версия форума 2.3.5.

не вижу

Ссылка на комментарий
Поделиться на других сайтах

Обсолютно такая же проблема. Может кто-нибудь выложить этот файл register.php уже готовый ( отредактированный)?

Выкладываю, версия форума 2.3.5.

не вижу

Да, кто-то стер. У меня там куски кода для интеграции с порталом Fusion были вставлены и я забыл их удалить перед отсылкой, может поэтому удалили? Хотя ничего криминального в этих кусках нет. Или это запрещено правилами? Почитал, не нашел там запрета.

Ссылка на комментарий
Поделиться на других сайтах

  • 3 недели спустя...

В инструкции есть МААААЛЕНЬКАЯ ошибочка, из-за которой у многих проблемы. Как раз эта ошибка где-тов районе строки 2235

Тут люди страдают из-за внимательности :D

 

В общем, где написано найти:

		//-----------------------------------------
	// Check the reg_code
	//-----------------------------------------

	if ($this->ipsclass->vars['bot_antispam'])
	{
		if ( $this->ipsclass->input['regid'] == "" )
		{
			$form_errors['general'][] = $this->ipsclass->lang['err_reg_code'];
		}

		$this->ipsclass->DB->build_query( array( 'select' => '*',
													  'from'   => 'reg_antispam',
													  'where'  => "regid='".trim($this->ipsclass->txt_alphanumerical_clean($this->ipsclass->input['regid']))."'"
											 )	  );

		$this->ipsclass->DB->exec_query();

		if ( ! $row = $this->ipsclass->DB->fetch_row() )
		{
			$form_errors['general'][] = $this->ipsclass->lang['err_reg_code'];
		}

		if ( trim( $this->ipsclass->txt_alphanumerical_clean($this->ipsclass->input['reg_code']) ) != $row['regcode'] )
		{
			$form_errors['general'][] = $this->ipsclass->lang['err_reg_code'];
		}

		$this->ipsclass->DB->do_delete( 'reg_antispam', "regid='".trim($this->ipsclass->txt_alphanumerical_clean($this->ipsclass->input['regid']))."'" );
	}

 

Надо на самом деле писать

 

		//-----------------------------------------
	// Check the reg_code
	//-----------------------------------------

	if ($this->ipsclass->vars['bot_antispam'])
	{
		if ( $this->ipsclass->input['regid'] == "" )
		{
			$form_errors['general'][] = $this->ipsclass->lang['err_reg_code'];
		}

		$this->ipsclass->DB->build_query( array( 'select' => '*',
													  'from'   => 'reg_antispam',
													  'where'  => "regid='".trim($this->ipsclass->txt_alphanumerical_clean($this->ipsclass->input['regid']))."'"
											 )	  );

		$this->ipsclass->DB->exec_query();

		if ( ! $row = $this->ipsclass->DB->fetch_row() )
		{
			$form_errors['general'][] = $this->ipsclass->lang['err_reg_code'];
		}

		if ( trim( $this->ipsclass->txt_alphanumerical_clean($this->ipsclass->input['reg_code']) ) != $row['regcode'] )
		{
			$form_errors['general'][] = $this->ipsclass->lang['err_reg_code'];
		}

		$this->ipsclass->DB->do_delete( 'reg_antispam', "regid='".trim($this->ipsclass->txt_alphanumerical_clean($this->ipsclass->input['regid']))."'" );
} }

 

т.е. в самом конце вместо одной } в файле находится 2 фигурных скобки, а когда заменяем на код из мода, должны получить только одну скобку ;)

 

Прикрепляю свою версию register.php

У меня все "чистенько", т.е. устанавливала только этот мод в этот файл

Ссылка на комментарий
Поделиться на других сайтах

  • 2 недели спустя...
  • 1 месяц спустя...
Bot Defence установил и настроил по инструкции, прописал 777 на кэш и подпапки, gd установлен и включен, не отображается капча в форме ответа (написано Image и красных крестик, как бывает когда не загружена картинка) . Не подскажите, как исправить?
Ссылка на комментарий
Поделиться на других сайтах

  • 4 недели спустя...

×
×
  • Создать...

Важная информация

Находясь на нашем сайте, вы соглашаетесь на использование файлов cookie, а также с нашим положением о конфиденциальности Политика конфиденциальности и пользовательским соглашением Условия использования.