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

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


Arhar

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

Прекрасный мод, автору спасибо, но еще не опробовал. Читаю содержимое в 28 страниц. Особенно понравилась статистика повторяющихся вопросов от непрограммистов.

 

И не лень же было считать по такому количеству страниц?

Не проще ли было написать…

 

Для того, чтоб выполнить пункт первый и выполнить запрос нужно:

-- в «Админпанели» выбрать «Прочее», в левом столбце в окне «Управление SQL» щелкнуть «Инструменты», переместиться вниз страницы и в окно SQL запрос скопировать исходный текст.

 

Для того, чтобы добавить и придумать один вопрос и ответ на него нужно:

-- в «Админпанели» выбрать «Управление», в левом столбце в окне «Пользователи и группы» щелкнуть «Дополнительные поля» и «Добавить» дополнительное поле профиля.

 

И всего то. Для этого не надо было разводить статистику

Как мы любим голову морочить людям. Ссылки кидать. Быть нужно проще и все будет понятнее.

 

Эти ссылки написаны для версии форума 2.3.5. Желающие могут написать для других версий. Пока не разобрался как выполнить пункт 5 руководства по установке. В версии форума 2.3.5 чуть другие окна. Может кто подскажет как их заполнять?

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

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

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

Field 'qinputf' doesn't have a default value

сделай запрос

ALTER TABLE ibf_questions CHANGE qinputf qinputf varchar(255) default ''

 

по поводу вопросов - как ни пиши, они все равно есть

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

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

В пункте 15 Б, . изменение файла sources/action_public/topics.php

Б) Найти:

$this->output = str_replace( "<!--IBF.QUICK_REPLY_OPEN-->"  , $this->ipsclass->compiled_templates['skin_topic']->quick_reply_box_open($this->topic['forum_id'], $this->topic['tid'], $show, $this->md5_check), $this->output );

 

Б) Заменить НА:

			//antispam.question
		if ($this->ipsclass->vars['questions_num'] and ($this->ipsclass->member['id'] == "" or !$this->ipsclass->member['id']))
		{
			$this->ipsclass->DB->query("SELECT id,question FROM swf_questions ORDER BY RAND() LIMIT 1");
			$row = $this->ipsclass->DB->fetch_row();
			$qinputf = $this->ipsclass->generate_qinputf();
			$row['answer_input'] = "<input type=\"text\" maxlength=\"60\" size=\"30\" name=\"".$this->prefix.$qinputf."\" />";
			$form = $this->ipsclass->compiled_templates['skin_topic']->question_row( $row );

			$this->ipsclass->DB->query("UPDATE swf_questions SET qinputf='".$qinputf."' WHERE id=".$row['id']);
		}
		//antispam.question

					$this->output = str_replace( "<!--IBF.QUICK_REPLY_OPEN-->"  , $this->ipsclass->compiled_templates['skin_topic']->quick_reply_box_open($this->topic['forum_id'], $this->topic['tid'], $show, $this->md5_check, $form), $this->output );

 

 

Как то протеворечит мне с модом Предупреждающие теги (Exclaim tags), где сказано заменить тот же самый код:

 

======================================================================

8. Открыть файл ./sources/action_public/topics.php

======================================================================

Найти:

----------------------------------------------------------------------
		$this->output = str_replace( "<!--IBF.QUICK_REPLY_OPEN-->"  , $this->ipsclass->compiled_templates['skin_topic']->quick_reply_box_open($this->topic['forum_id'], $this->topic['tid'], $show, $this->md5_check), $this->output );
----------------------------------------------------------------------

Заменить:

----------------------------------------------------------------------
		$quick_reply_box_open = $this->ipsclass->compiled_templates['skin_topic']->quick_reply_box_open($this->topic['forum_id'], $this->topic['tid'], $show, $this->md5_check);
		/*-------------------------------------------------------------------------*/
		// Vic'er -> Exclaim Tags {
		if ( !$this->ipsclass->member["mod_tag_allowed"] ) {
			$quick_reply_box_open = preg_replace('#<!--MOD{-->(.*?)<!--}MOD-->#is', '', $quick_reply_box_open);
		}
		if ( !$this->ipsclass->member["ex_tag_allowed"] ) {
			$quick_reply_box_open = preg_replace('#<!--EX{-->(.*?)<!--}EX-->#is', '', $quick_reply_box_open);
		}
		// Vic'er -> Exclaim Tags }
		/*-------------------------------------------------------------------------*/
		$this->output = str_replace( "<!--IBF.QUICK_REPLY_OPEN-->"  , $quick_reply_box_open, $this->output );

 

Ну и как тут теперь поступить? Пожертвовать модераторскими тегами что-ли???

 

И еще вопрос/предложение.

а, Что бы ответ был не регистрозависим, и можно было бы давать два варианта ответа (один на кириллице, другой на латинице аля транслит)

и б, что бы вопрос спрашивался не только при регистрации, но и при авторизации.

 

При попытки регистрации пишет:

Parse error: syntax error, unexpected '!', expecting T_VARIABLE or '$' in /home/salikov/data/www/forum.swtimeline.ru/cache/skin_cache/cacheid_6/skin_register.php on line 557

 

Что это может быть?

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

для exclaim будет такой результат

			//antispam.question
		if ($this->ipsclass->vars['questions_num'] and ($this->ipsclass->member['id'] == "" or !$this->ipsclass->member['id']))
		{
			$this->ipsclass->DB->query("SELECT id,question FROM swf_questions ORDER BY RAND() LIMIT 1");
			$row = $this->ipsclass->DB->fetch_row();
			$qinputf = $this->ipsclass->generate_qinputf();
			$row['answer_input'] = "<input type=\"text\" maxlength=\"60\" size=\"30\" name=\"".$this->prefix.$qinputf."\" />";
			$form = $this->ipsclass->compiled_templates['skin_topic']->question_row( $row );

			$this->ipsclass->DB->query("UPDATE swf_questions SET qinputf='".$qinputf."' WHERE id=".$row['id']);
		}
		//antispam.question
		$quick_reply_box_open = $this->ipsclass->compiled_templates['skin_topic']->quick_reply_box_open($this->topic['forum_id'], $this->topic['tid'], $show, $this->md5_check, $form);
		/*-------------------------------------------------------------------------*/
		// Vic'er -> Exclaim Tags {
		if ( !$this->ipsclass->member["mod_tag_allowed"] ) {
			$quick_reply_box_open = preg_replace('#<!--MOD{-->(.*?)<!--}MOD-->#is', '', $quick_reply_box_open);
		}
		if ( !$this->ipsclass->member["ex_tag_allowed"] ) {
			$quick_reply_box_open = preg_replace('#<!--EX{-->(.*?)<!--}EX-->#is', '', $quick_reply_box_open);
		}
		// Vic'er -> Exclaim Tags }
		/*-------------------------------------------------------------------------*/
		$this->output = str_replace( "<!--IBF.QUICK_REPLY_OPEN-->"  , $quick_reply_box_open, $this->output );

 

 

 

для parse error http://www.ibresource.ru/forums/blog/arhar...p?showentry=135 2.2

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

Field 'qinputf' doesn't have a default value

сделай запрос

ALTER TABLE ibf_questions CHANGE qinputf qinputf varchar(255) default ''

 

по поводу вопросов - как ни пиши, они все равно есть

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

 

Ага, я вчера после того что написал сам поменял значение на NULL в таблице в поле qinputf и все заработало!!

Oгромное спасибо.

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

strtolower - переводит символы строки в нижний регистр.

Ответ в админке пишешь строчными... то что юзер написал в ответе на вопрос тоже переводишь в нижний регистр. Вот и всё. Вот только самому разбираться в принципе весьма долго. Надеюсь Arhar ткнёт пальцем

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

По поводу моей пробелмы При попытки регистрации пишет:

 

Parse error: syntax error, unexpected '!', expecting T_VARIABLE or '$' in /home/salikov/data/www/forum.swtimeline.ru/cache/skin_cache/cacheid_6/skin_register.php on line 557
Я удалил этот мод, вернул все как было, воставновилв все файлы и шаблоны как были, делал апдейт кеш, но ошибка все та же. Я даже не знаю что делать.
Ссылка на комментарий
Поделиться на других сайтах

Я даже не знаю что делать.

http://www.ibresource.ru/forums/blog/arhar...p?showentry=135 2.2

 

strtolower - переводит символы строки в нижний регистр.

ipsclass.php

$this->input[$s] == $row['answer']

=>

strtolower($this->input[$s]) == strtolower($row['answer'])

mb

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

Может это и не связанно, но когда я ставил этот мод, регистрации на форуме у меня были отключены. Это ни как не может быть связанно?

 

Что я сегодня делал, сделал апдейт с версии 2.3.4 до 2.3.5

Поставил модуль блогов и модуль галереи. Ставил мод модераторские теги (который на регистрацию ни как не влияет).

 

Есть бекап со 2/10/08 до всех обновлений и установок модов, когда регистрация работала. Когда с него заливаю файл cacheid_6/skin_register.php то регистрация работает, но когда я обновляю кеш через админку, то глюк опять возвращается.

 

Щас я залил все файлы форума с этого бэкапа. Не помогло.

 

Сравниваю файлы skin_register.php старый и новый:

В новом не работающем на той строчке где указывается проблема стоит

" . (($! $reg['partial_email_ok']) ? ("

 

В старом коде в том же месте стоит:

" . ((! $reg['partial_email_ok']) ? ("

То есть без знака $

 

Где в шаблонах это может быть? Из за какого шаблона и в каком месте?

 

По мануалу изменяемые шаблоны в этом моде:

Изменяемые шаблоны - 2

skin_register - ShowForm

skin_topics - quick_reply_box_open

 

Добавляемые шаблоны - 3

skin_register - question_mod

skin_post - question_row

skin_topics - question_row

 

В skin_register - ShowForm? Там всего надо добавить <!--{ANTISPAM.QUESTION}--> А "Добавляемый шаблон" skin_register - question_mod я уже стер.

 

Если я ставлю skin_register - ShowForm по дефолту, то баг все равно остается.

 

Нашел в skin_register (регистрация) - reg_complete_login строчку

<if="$! $reg['partial_email_ok']">

Удалил зловредный $ и теперь заработало. Как он туда попал, без понятия. Или апдейт сделал или установка блога/галереи.

 

Все равно спасибо всем что я нашёл хотя бы способ как искать. Если у кого-то будет подобная проблема пишите после чего она возникла. Я сам точно там ничего не трогал.

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

9. идем во внешний вид - изменить html фрагменты - skin_topics - quick_reply_box_open

Найти:

<form name="REPLIER" action="{ipb.script_url}" method="post" onsubmit='return ValidateForm()'>
<input type="hidden" name="act" value="Post" />
<input type="hidden" name="CODE" value="03" />
<input type="hidden" name="f" value="$fid" />
<input type="hidden" name="t" value="$tid" />
<input type="hidden" name="st" value="{ipb.input['st']}" />
<input type="hidden" name="auth_key" value="$key" />
<input type="hidden" name="fast_reply_used" value="1" />

Добавить ниже:

{$form}

Вот того что надо найти там два. Так куда вставлять? В оба места?

 

И то что написанно skin_topics у меня skin_topic

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

Банальная для этого топика проблема - нет самого модуля для добавления вопроса. При регистрации вылазит:

"Ошибка при работе с базой данных

Возникла проблема при работе с базой данных."

 

Два раза проверял, вроде как все правильно сделал. Не пойму, куда копать...

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

Обнови кеш, и зайди в ПРОЧЕЕ, Модуль вопросов, Вопросы при регистрации.

Пока не добавил ни одного вопроса будет кидать ошибку БД.

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

Банальная для этого топика проблема - нет самого модуля для добавления вопроса. При регистрации вылазит:

"Ошибка при работе с базой данных

Возникла проблема при работе с базой данных."

 

Два раза проверял, вроде как все правильно сделал. Не пойму, куда копать...

Проверить третий раз. Как правило с двух попыток не все моды ставятся.

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

newbigmir, совместим.

 

ArtemedoN, попробовал - не помогло.

Решил сделать проще - ввел вопросы через "Управление SQL". Заработало.

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

Я даже не знаю что делать.

http://www.ibresource.ru/forums/blog/arhar...p?showentry=135 2.2

 

strtolower - переводит символы строки в нижний регистр.

ipsclass.php

$this->input[$s] == $row['answer']

=>

strtolower($this->input[$s]) == strtolower($row['answer'])

mb

Выяснил практическим путем, что если последовать этому совету, то примерно каждый четвертый раз прокатывает регистрация с пустым ответом!

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

стало быть локаль на сервере неправильно выставлена

в таких случаях strtolower приводит к неправильным последствиям

в index.php самой первой командой надо сделать

setlocale(LC_ALL,"ru_RU.CP1251");

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

по поводу вопросов - как ни пиши, они все равно есть

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

Ну, к примеру, не у каждого есть возможность качать видео. О безнадежных можно поспорить. Когда приобретаешь некоторые товары (программы в том числе) рекламные буклеты сулят нам золотые горы, что и дурак справится. Когда же начинаешь пользоваться - оказывается, что нужно там постучать, здесь подкрутить, ножницами подрезать, напильником подточить. Тогда будет работать, если нюхать регулярно будем.

Вот и получается, что люди, способные к вышиванию становятся юзерами и ламерами (блин слова то какие) ;) .

 

Далее в таком духе можно целую поэму написать. Крестиком вышивать, это Вам не форумы создавать :D .

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

Купили американцы у нас военный самолет. Привезли его им в коробках, разобранный. Собирают, значит, по инструкции - получается трактор. Думают, wtf? Разбирают, собирают заново - снова трактор. В отчаянии звонят в Россию, спрашивают, как же так, купили самолет, получили трактор. Приезжает наш специалист, они при нем собирают, получают трактор. Он такой смотрит на это дело, и говорит, вот вы невнимательно инструкцию читаете. Почему? А тут же сказано - после сборки обточить напильником для придания формы.
Ссылка на комментарий
Поделиться на других сайтах

после переезда с хоста на хост перестали работать вопросы.

пишет "Ответ на защитный вопрос неверен. Повторите попытку."

вопросы математические (2+2, 3-1...). поэтому в кодировке или регистре проблем нет.

куда копать?

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


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

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

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