Перейти к публикации

Антиспам в комментариях (sec_code)


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

Имеется сайт на движке DataLife Engine.

Надоели боты, оставляющие спам-комментарии. До этого меня волновали регистрирующиеся боты, их деятельность я приостановил с помощью данного хака.

Опираясь на этот хак, я решил сделать замену переменной "sec_code" в комментариях, но что-то не получается, точнее, не могу ее найти в "engine/modules/addcomments.php". Возможно, в комментариях эта переменная в другом месте записана?

Прошу помочь разобраться. Заранее спасибо.

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

if( $_REQUEST['sec_code'] != $_SESSION['sec_code_session'] OR !$_SESSION['sec_code_session'] ) {
$stop[] = $lang['news_err_30'];
$CN_HALT = TRUE;
}
[/CODE]

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

В addcomments.php прописал вот так:

$_REQUEST['1sec_code'] != $_SESSION['1sec_code_session'] OR !$_SESSION['1sec_code_session']
В addcomments.tpl прописал вот так:
name="1sec_code" id="1sec_code"[/code]

При добавлении комментария пишет: "Введен неверный код безопасности". Что я делаю не так? Кажется, это не единственное место, где надо делать замену.

Изменено пользователем zzaaa
Ссылка на сообщение
Поделиться на других сайтах

$_SESSION['1sec_code_session'] OR !$_SESSION['1sec_code_session']

Зачем вы меняете эти переменные? Это сессии и вам их трогать не нужно, вам нужно менять только $_REQUEST['sec_code'] а сессии трогать не нужно

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

$_SESSION['1sec_code_session'] OR !$_SESSION['1sec_code_session']

Зачем вы меняете эти переменные? Это сессии и вам их трогать не нужно, вам нужно менять только $_REQUEST['sec_code'] а сессии трогать не нужно

1. Вернул все, как было изначально.

2. В addcomments.tpl значение переменной изменил на "secur".

3. В этой строке изменил "sec_code" на "secur"

$_REQUEST['secur'] != $_SESSION['sec_code_session'] OR !$_SESSION['sec_code_session']
На сайте получаю ошибку: "Введен неверный код безопасности". 4. Думаю, ладно, поищу в addcomments.php еще похожих переменных, нашел строку, которая предствлена ниже, находилась она выше той, которую я показал выше:
if( ! $user_group[$member_id['user_group']]['captcha'] ) {

$_SESSION['sec_code_session'] = 1;

$_REQUEST['secur'] = 1;

}[/code]

В ней я изменил значение "sec_code" на "secur".

И, к сожалению, увидел ту же ошибку при отправке комментария.

Изменено пользователем zzaaa
Ссылка на сообщение
Поделиться на других сайтах

Менять нужно только $_REQUEST['sec_code'] и только в той строчке что я вам сказал, больше ничего трогать не нужно. Поэтому если у вас не работает, то что то вы неверно делаете.

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

Менять нужно только $_REQUEST['sec_code'] и только в той строчке что я вам сказал, больше ничего трогать не нужно. Поэтому если у вас не работает, то что то вы неверно делаете.

Все делаю правильно, но на сайте пишет, что код введен неверно.

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

Добавление комментариев происходит при помощи AJAX и вам нужно менять не только в шаблоне имя поля, но еще и JS скрипты отправляющие AJAX запрос в файле engine/classes/js/dle_js.js несжатый файл можно взять в дистрибутиве в папке Developer. Вы меняли имя поле которое отправляется в скрипт в данном файле? Скорее всего нет.

Ссылка на сообщение
Поделиться на других сайтах
  • 3 месяца спустя...

Добавление комментариев происходит при помощи AJAX и вам нужно менять не только в шаблоне имя поля, но еще и JS скрипты отправляющие AJAX запрос в файле engine/classes/js/dle_js.js несжатый файл можно взять в дистрибутиве в папке Developer. Вы меняли имя поле которое отправляется в скрипт в данном файле? Скорее всего нет.

Нашел переменную sec_code в engine/classes/js/js_edit.js и/engine/ajax/addcomments.php

В каких именно строках ее необходимо заменить? Celsoft, вы как разработчик лучше ориентируетесь в коде, помогите пожалуйста.

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

Нашел переменную sec_code в engine/classes/js/js_edit.js

в функции doAddComments нужно менять.

/engine/ajax/addcomments.php

везде в этом файле, он отвечает только за добавление комментария

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

Присоединяйтесь к обсуждению

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

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

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