Новый AntiSpam для Vii Engine 3.0 написан и оптимизирован на PHP 8+
Новый AntiSpam для Vii Engine 3.0 написан и оптимизирован на PHP 8+
В платной версии движка сделана поддержка кеша и авто очистки.
function AntiSpam(string $act, ?string $text = null): bool {
global $db, $user_info, $server_time;
if (empty($user_info['user_id'])) {
return false;
}
// Маппинг действий
$actions = [
'friends' => ['id' => 1, 'limit' => 40],
'messages' => ['id' => 2, 'limit' => 40],
'wall' => ['id' => 3, 'limit' => 500],
'identical' => ['id' => 4, 'limit' => 100],
'comments' => ['id' => 5, 'limit' => 2000],
'groups' => ['id' => 6, 'limit' => 5],
];
if (!isset($actions[$act])) {
return false;
}
$actId = $actions[$act]['id'];
$limit = $actions[$act]['limit'];
// Дата
$antiDate = strtotime(date('Y-m-d', $server_time));
// Хеш текста
$txtSql = '';
if ($act === 'identical' && $text !== null) {
$textHash = md5($text);
$textHash = $db->safesql($textHash);
$txtSql = " AND txt = '{$textHash}'";
}
$userId = (int)$user_info['user_id'];
$check = $db->super_query("
SELECT COUNT(*) AS cnt
FROM `" . PREFIX . "_antispam`
WHERE act = '{$actId}'
AND user_id = '{$userId}'
AND date = '{$antiDate}'
{$txtSql}
");
if (($check['cnt'] ?? 0) >= $limit) {
return false; // вместо die
}
return true;
}
function AntiSpamLogInsert(string $act, ?string $text = null): void {
global $db, $user_info, $server_time;
if (empty($user_info['user_id'])) {
return;
}
$actions = [
'friends' => 1,
'messages' => 2,
'wall' => 3,
'identical' => 4,
'comments' => 5,
'groups' => 6,
];
if (!isset($actions[$act])) {
return;
}
$actId = $actions[$act];
$antiDate = strtotime(date('Y-m-d', $server_time));
$userId = (int)$user_info['user_id'];
$txtField = '';
if ($act === 'identical' && $text !== null) {
$textHash = md5($text);
$textHash = $db->safesql($textHash);
$txtField = ", txt = '{$textHash}'";
}
$db->query("
INSERT INTO `" . PREFIX . "_antispam`
SET act = '{$actId}',
user_id = '{$userId}',
date = '{$antiDate}'
{$txtField}
");
}
👉 Логика полностью сохранена.
👉 Просто теперь функция возвращает false, а не убивает весь сайт.
💪 Что вы получили
-
Совместимость с PHP 8
-
Нет TypeError
-
Нет null ошибок
-
Код стал в 3 раза чище
-
Лимиты легко менять
-
Без ломки движка Vii Engine
Информация
Посетители, находящиеся в группе Гости, не могут скачивать файлы с нашего сайта.
Пожалуйста зарегистрируйтесь или авторизируйтесь для доступа к файлу.
Похожие новости
Обсуждение новости
-
Информация
-
Vii Engine NEW
-
DataLife Engine
-
Скрипты, Soft, APP, CMS
-
Bootstrap
-
Шаблоны сайтов
-
Web Мастеру
Статистика
Гости1
Список пользователей
Test
Был(a) в сети 5 часов назад
Обновленияnew
Комментарии
Часто задаваемые вопросы
Информация
Скидка на все скрипты 20%! до 8 сентября
Актуальная версия Vii Engine 3.0
Внимание! Сайт мошенников!
Облако тегов
Billing DataLife Engine Final PHPSocial Release Адаптивный ВКонтакте Сборка Скачать бесплатно версии версия возможности время дизайном изображений имеет интернет модулей модуль можно некоторые новостей новые плагин полностью помощью простой работает сайт сайта сети системы скрипт слив социальной также хостинг шаблон






