Данный материал предоставлен сайтом ProWebber.cc исключительно в ознакомительных целях. Администрация не несет ответственности за его содержимое.
Скачать бесплатно Правильное решение проблемы ANTISPAM: User ID not valid (DLE 9.0 - 9.2).
Скачать бесплатно Правильное решение проблемы ANTISPAM: User ID not valid (DLE 9.0 - 9.2).
Уже давно в интернете ветает проблема ANTISPAM: User ID not valid при отправке ПМ другому пользователю. Чаще всего она возникает, когда Вы тратите немного больше времени на написание сообщения, чем это позволяет скрипт (истекает сессия). Видел два решения этой проблемы, но технически их нельзя назвать правильными.
Найти
Заменить на
Или же просто удалить систему антиспама в engine/modules/pm.php
Данная проблема присутствует только в версиях 9.0 и 9.2, в версии 9.3 отключение антиспам системы производится через настройки АЦ > Безопасность (Включить автоматическое блокирование спам программ). Она срабатывает, как для новостей, так и для ПМ.
Предлагаю просто на просто перенести данную фишечку с актуальной версии для пенсионеров DLE 9.0 и 9.2. Делается это след. образом.
Находим
Заменяем на:
Все работает на ура!
Проверенно на двух версиях, описанных в заголовке публикации.
Извиняюсь за многословность, уж очень люблю писульки писать :)
Версии: 9.0 - 9.2
Автор: F1ST
Неудачные способы(!)
Найти
$id_key = $_POST[$_SESSION['id_key']];
Заменить на
$id_key = @$db->safesql($_POST[$_SESSION['id_key']]);
Или же просто удалить систему антиспама в engine/modules/pm.php
if( $id_key == "" or $id_key != $dle_login_hash ) $stop .= "<li>ANTISPAM: User ID not valid</li>";
if (clean_url($_SERVER['HTTP_REFERER']) != clean_url($_SERVER['HTTP_HOST'])) $stop .= "<li>ANTISPAM: User ID not valid</li>";
if (clean_url($_SERVER['HTTP_REFERER']) != clean_url($_SERVER['HTTP_HOST'])) $stop .= "<li>ANTISPAM: User ID not valid</li>";
Правильное решение
Данная проблема присутствует только в версиях 9.0 и 9.2, в версии 9.3 отключение антиспам системы производится через настройки АЦ > Безопасность (Включить автоматическое блокирование спам программ). Она срабатывает, как для новостей, так и для ПМ.
Предлагаю просто на просто перенести данную фишечку с актуальной версии для пенсионеров DLE 9.0 и 9.2. Делается это след. образом.
Находим
$id_key = $_POST[$_SESSION['id_key']];
if( $id_key == "" or $id_key != $dle_login_hash ) $stop .= "<li>ANTISPAM: User ID not valid</li>";
if (clean_url($_SERVER['HTTP_REFERER']) != clean_url($_SERVER['HTTP_HOST'])) $stop .= "<li>ANTISPAM: User ID not valid</li>";
if( $id_key == "" or $id_key != $dle_login_hash ) $stop .= "<li>ANTISPAM: User ID not valid</li>";
if (clean_url($_SERVER['HTTP_REFERER']) != clean_url($_SERVER['HTTP_HOST'])) $stop .= "<li>ANTISPAM: User ID not valid</li>";
Заменяем на:
if( $config['sec_addnews'] ) {
$id_key = $_POST[$_SESSION['id_key']];
if( $id_key == "" or $id_key != $dle_login_hash ) $stop .= "<li>ANTISPAM: User ID not valid</li>";
if (clean_url($_SERVER['HTTP_REFERER']) != clean_url($_SERVER['HTTP_HOST'])) $stop .= "<li>ANTISPAM: User ID not valid</li>";
}
$id_key = $_POST[$_SESSION['id_key']];
if( $id_key == "" or $id_key != $dle_login_hash ) $stop .= "<li>ANTISPAM: User ID not valid</li>";
if (clean_url($_SERVER['HTTP_REFERER']) != clean_url($_SERVER['HTTP_HOST'])) $stop .= "<li>ANTISPAM: User ID not valid</li>";
}
Все работает на ура!
Проверенно на двух версиях, описанных в заголовке публикации.
Извиняюсь за многословность, уж очень люблю писульки писать :)
Версии: 9.0 - 9.2
Автор: F1ST