zzaaa 1 Опубликовано: 24 декабря 2011 Рассказать Опубликовано: 24 декабря 2011 Имеется сайт на движке DataLife Engine. Надоели боты, оставляющие спам-комментарии. До этого меня волновали регистрирующиеся боты, их деятельность я приостановил с помощью данного хака. Опираясь на этот хак, я решил сделать замену переменной "sec_code" в комментариях, но что-то не получается, точнее, не могу ее найти в "engine/modules/addcomments.php". Возможно, в комментариях эта переменная в другом месте записана? Прошу помочь разобраться. Заранее спасибо. Цитата Ссылка на сообщение Поделиться на других сайтах
celsoft 6 077 Опубликовано: 24 декабря 2011 Рассказать Опубликовано: 24 декабря 2011 if( $_REQUEST['sec_code'] != $_SESSION['sec_code_session'] OR !$_SESSION['sec_code_session'] ) { $stop[] = $lang['news_err_30']; $CN_HALT = TRUE; } [/CODE] Цитата Ссылка на сообщение Поделиться на других сайтах
zzaaa 1 Опубликовано: 24 декабря 2011 Рассказать Опубликовано: 24 декабря 2011 (изменено) Автор В addcomments.php прописал вот так: $_REQUEST['1sec_code'] != $_SESSION['1sec_code_session'] OR !$_SESSION['1sec_code_session'] В addcomments.tpl прописал вот так: name="1sec_code" id="1sec_code"[/code] При добавлении комментария пишет: "Введен неверный код безопасности". Что я делаю не так? Кажется, это не единственное место, где надо делать замену. Изменено 24 декабря 2011 пользователем zzaaa Цитата Ссылка на сообщение Поделиться на других сайтах
celsoft 6 077 Опубликовано: 24 декабря 2011 Рассказать Опубликовано: 24 декабря 2011 $_SESSION['1sec_code_session'] OR !$_SESSION['1sec_code_session'] Зачем вы меняете эти переменные? Это сессии и вам их трогать не нужно, вам нужно менять только $_REQUEST['sec_code'] а сессии трогать не нужно Цитата Ссылка на сообщение Поделиться на других сайтах
zzaaa 1 Опубликовано: 25 декабря 2011 Рассказать Опубликовано: 25 декабря 2011 (изменено) Автор $_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". И, к сожалению, увидел ту же ошибку при отправке комментария. Изменено 25 декабря 2011 пользователем zzaaa Цитата Ссылка на сообщение Поделиться на других сайтах
celsoft 6 077 Опубликовано: 25 декабря 2011 Рассказать Опубликовано: 25 декабря 2011 Менять нужно только $_REQUEST['sec_code'] и только в той строчке что я вам сказал, больше ничего трогать не нужно. Поэтому если у вас не работает, то что то вы неверно делаете. Цитата Ссылка на сообщение Поделиться на других сайтах
zzaaa 1 Опубликовано: 25 декабря 2011 Рассказать Опубликовано: 25 декабря 2011 Автор Менять нужно только $_REQUEST['sec_code'] и только в той строчке что я вам сказал, больше ничего трогать не нужно. Поэтому если у вас не работает, то что то вы неверно делаете. Все делаю правильно, но на сайте пишет, что код введен неверно. Цитата Ссылка на сообщение Поделиться на других сайтах
celsoft 6 077 Опубликовано: 25 декабря 2011 Рассказать Опубликовано: 25 декабря 2011 Добавление комментариев происходит при помощи AJAX и вам нужно менять не только в шаблоне имя поля, но еще и JS скрипты отправляющие AJAX запрос в файле engine/classes/js/dle_js.js несжатый файл можно взять в дистрибутиве в папке Developer. Вы меняли имя поле которое отправляется в скрипт в данном файле? Скорее всего нет. Цитата Ссылка на сообщение Поделиться на других сайтах
zzaaa 1 Опубликовано: 18 апреля 2012 Рассказать Опубликовано: 18 апреля 2012 Автор Добавление комментариев происходит при помощи AJAX и вам нужно менять не только в шаблоне имя поля, но еще и JS скрипты отправляющие AJAX запрос в файле engine/classes/js/dle_js.js несжатый файл можно взять в дистрибутиве в папке Developer. Вы меняли имя поле которое отправляется в скрипт в данном файле? Скорее всего нет. Нашел переменную sec_code в engine/classes/js/js_edit.js и/engine/ajax/addcomments.php В каких именно строках ее необходимо заменить? Celsoft, вы как разработчик лучше ориентируетесь в коде, помогите пожалуйста. Цитата Ссылка на сообщение Поделиться на других сайтах
celsoft 6 077 Опубликовано: 18 апреля 2012 Рассказать Опубликовано: 18 апреля 2012 Нашел переменную sec_code в engine/classes/js/js_edit.js в функции doAddComments нужно менять. /engine/ajax/addcomments.php везде в этом файле, он отвечает только за добавление комментария Цитата Ссылка на сообщение Поделиться на других сайтах
Рекомендованные сообщения
Присоединяйтесь к обсуждению
Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.