Доброе утро, Гость! Представляем Вам наши форумы. Вы можете зарегистрироваться чтобы писать на форумах или зайдите под своим именем, если Вы уже регистрировались.
Ниже вариант с добавлением в систему бана cms. Проверяет только не авторизованных. Проще сделать из этого виджет, код запроса взят из виджета антибот. Изложен принцип, код не тестировал. Тексты естественно в запрос свои пишем
PHP-код
if ($_SESSION['loggedin'] != 1 && SX::object('Counter')->nobann == 0) {
$country_code = 'RU'; // По умолчанию лучше конечно оставить RU, тогда если ipinfo ответит криво или вообще не ответит, то пользователя все же пустит на сайт if ($response !== false) { $data = json_decode($response, true); $country_code = $data['country'] ?? $country_code; }
if ($country_code !== 'RU') { $period = 86400; $stime = time(); $end = $stime + $period; $row = $this->_db->fetch_object("SELECT Id FROM " . PREFIX . "_banned WHERE Ip = '" . IP_USER . "' AND Aktiv = '1' LIMIT 1"); if (is_object($row)) { $this->_db->query("UPDATE " . PREFIX . "_banned SET TimeEnd = '" . $end . "' WHERE Ip = '" . IP_USER . "' AND Aktiv = '1' LIMIT 1"); SX::setLog('Автоматическое продление системой безопасности нахождения пользователя с адресом ' . IP_USER . ' в бан-листе', '3', $_SESSION['benutzer_id']); Arr::setCookie('welcome', IP_USER, $period); } else { $insert_array = array( 'Reson' => 'Система безопасности выявила робота и заблокировала', 'Type' => 'autobann', 'TimeStart' => $stime, 'TimeEnd' => $end, 'Ip' => IP_USER, 'Aktiv' => '1'); $this->_db->insert_query('banned', $insert_array); SX::setLog('Автоматическое добавление системой безопасности пользователя с адресом ' . IP_USER . ' в бан-лист', '3', $_SESSION['benutzer_id']); Arr::setCookie('welcome', IP_USER, $period); } } }