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

[2.3.x]Защита от ботов: вопросы при регистрации v3


Arhar

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

  • Ответы 823
  • Создана
  • Последний ответ

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

При запросе SQL пишет ошибку

 

 

IPB Предупреждение [2] mysql_fetch_field(): supplied argument is not a valid MySQL result resource (Строка: 804 файла /ips_kernel/class_db_mysql.php)

IPB Предупреждение [2] mysql_fetch_array(): supplied argument is not a valid MySQL result resource (Строка: 577 файла /ips_kernel/class_db_mysql.php)

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

Пишет ошибку

 

mySQL query error: UPDATE ibf_questions SET qinputf='byX548' WHERE id=

 

SQL error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1

SQL error code:

Date: 1.3.2007, 17:14

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

а сколько вопросов всего?

при 1--3 такое возможно часто

 

Примечание.

чем больше вопросов, тем больше эффективность мода

Вот макет для 12 вопросов

[Первый -- Двенадцатый] месяц года? = [январь -- декабрь]

Еще 7

[Первый -- Седьмой] день недели? = [понедельник -- воскресенье]

Естесственно желательно формулировать вопросы по разному, чтобы не было возможности составить алгоритм подбора ответов

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

Появилась в админке опция Модуль вопросов. Жму на: Вопросы при регистрации и просто обновляется страница админки. Ничего не происходит. Где может быть косяк? :D
Ссылка на комментарий
Поделиться на других сайтах

Важно: & amp; пишется слитно!

 

Всё, в админке добавил вопрос, но в форме регистрации поля с вопросом не появилось. :D

 

Важно: & amp; пишется слитно!

 

Всё, в админке добавил вопрос, но в форме регистрации поля с вопросом не появилось. ;)

 

В форме-то почему нет? Всё по инструкции делал. :)

 

И да, у меня в /sources/acp_loaders/acp_admin.php не было 'security' => 'security', поэтому я 'questions' => 'questions', после 'acpperms' => 'acppermissions', добавил. Может поэтому?

 

Вот куски кода в register.php. Проверь, пожалуйста.

 

var $email	  = "";
var $modules	= "";
//antispam.question
var $prefix	   = "answer_";

function auto_run()

 

//-----------------------------------------
	// Replace elements
	//-----------------------------------------
//antispam.question
if ($this->ipsclass->vars['questions_num'])
{
	$question_row .= "<fieldset class=\"row3\">
				<legend><b>Защитный вопрос</b></legend>
				<table class='ipbtable' cellspacing=\"0\">
					<tr>
						<td width=\"100%\" colspan=\"2\">Для успешной регистрации необходимо ответить на следующий вопрос:</td>
					</tr>
	";

	$this->ipsclass->DB->query("SELECT id,question FROM ibf_questions ORDER BY RAND() LIMIT 1");
	$row = $this->ipsclass->DB->fetch_row();
	$qinputf = $this->generate_qinputf();
	$row['answer_input'] = "<input type=\"text\" maxlength=\"60\" size=\"30\" name=\"".$this->prefix.$qinputf."\" />";
	$question_row .= $this->ipsclass->compiled_templates['skin_register']->question_row( $row );

	$question_row .="</table>
			</fieldset>";

	$this->ipsclass->DB->query("UPDATE ibf_questions SET qinputf='".$qinputf."' WHERE id=".$row['id']);

	$this->output = str_replace( "<!--{ANTISPAM.QUESTION}-->", $question_row , $this->output );
}
//antispam.question


	if ($this->ipsclass->vars['bot_antispam'] == 'gd')
	{
		$this->output = str_replace( "<!--{REG.ANTISPAM}-->", $this->ipsclass->compiled_templates['skin_register']->bot_antispam_gd( $regid ), $this->output );

 

$this->ipsclass->DB->simple_exec_query( array( 'delete' => 'reg_antispam', 'where' => "regid='".trim(addslashes($this->ipsclass->input['regid']))."'" ) );
	}
	//antispam.question
if ($this->ipsclass->vars['questions_num'])
{
	$n = $this->num_correct();
	if($this->correct_answer($n)==false)
		{		
		$form_errors['general'][] = $this->ipsclass->lang['err_reg_question'];
	}
}
//antispam.question

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

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

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

а как переменная, которую добавил в настройках безопасности?

значение = да?

 

Угу. Да. ;)

 

Слушай, у меня было на Да, я нажал на Нет, потом опять на Да и начало автоматически сбрасываться на Нет при нажатии на Да. А когда зашёл в настройки, то в поле Текущее значение настройки: пропала единица. Выставляю 1 опять появляется Да. Потом жму Нет, потом опять Да и опять пропадает 1 в Текущее значение настройки. :D

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

З.Ы.: когда создавал настаройку в поле Расположение настройки стояло автоматом 54. Я ничего не менял.

 

Обновил кеши. Та же лажа. :D

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

это не зависит, у меня тоже 54 стояло

что-то с кешем или таблицей ibf_conf_settings

 

посмотри управление кешем - settings (Настройки форума и переменных) - просмотр контента кеша, там ctrl-f на странице questions_num

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

это не зависит, у меня тоже 54 стояло

что-то с кешем или таблицей ibf_conf_settings

 

посмотри управление кешем - settings (Настройки форума и переменных) - просмотр контента кеша, там ctrl-f на странице questions_num

 

[questions_num ] => 1

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

вот это вообще страннее некуда)

а все равно не работает?

в админке сделай запрос

SELECT * FROM ibf_conf_settings WHERE conf_key="questions_num"

что говорит?

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

странно все это

попробуй зарегестрироватся с настройкой=да, что он выдаст?

 

Ничего. В форме регистрации отсутсвует поле с вопросом. :D Пойду убью себя. ;)

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


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

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

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