[I128-2296] PHP Notice: -.txt: Ошибка исполнения статистики syntax error, unexpected string content "", expecting "-" or identifier or variable or number in modules/Stat/Actions/PackSiteLogs.inc on line 70
[27Mar2026 20:43:06 Europe/Moscow] PHP Notice: 18.200.250.255.txt: Ошибка исполнения статистики syntax error, unexpected string content "", expecting "" or identifier or variable or number in E:\htdocs_master\modules\Stat\Actions\PackSiteLogs.inc on line 70
Исправления:
Оптимизация и переход на JSON-логирование
Произведен рефакторинг подсистемы логирования посещений сайта (SiteStat) с целью повышения производительности, надежности и безопасности.
Изменение формата записи логов (modules/SiteStat/api.php)
Переход на JSON Lines: Вместо сохранения логов в виде исполняемого PHPкода (var_export, eval), теперь используется безопасный и стандартный формат JSON Lines. Каждое событие (хит) записывается как отдельный JSONобъект в новую строку.
Безопасность: Полностью исключено использование небезопасной функции eval(), что устраняет уязвимость к выполнению произвольного кода (RCE) через специально сформированные заголовки User-Agent.
** Надежность: Новый формат устойчив к синтаксическим ошибкам, которые ранее могли возникать из-за некорректных данных и приводить к сбою обработки.
Оптимизация записи:
Устранены лишние файловые операции (fopen/fclose) при создании нового файла лога.
Добавлены прагмы PRAGMA synchronous = NORMAL и PRAGMA temp_store = MEMORY для SQLite, что значительно ускоряет запись счетчиков посещений (iHitEnsure, iHitInc) за счет снижения требований к синхронизации с диском.
Обновление скрипта обработки логов (modules/Stat/Actions/PackSiteLogs.inc)
Обратная совместимость: Скрипт PackSiteLogs.inc теперь умеет обрабатывать как старые лог-файлы (через eval), так и новые (через json_decode). Формат определяется автоматически по первому символу в файле.
Надежность обработки: Добавлено удаление некорректных или пустых лог-файлов, чтобы избежать зацикливания и постоянных ошибок при каждом запуске обработчика.
-
Симптомы:
Появление в лог-файле ошибок такого вида:
[27Mar2026 20:43:06 Europe/Moscow] PHP Notice: 18.200.250.255.txt: Ошибка исполнения статистики syntax error, unexpected string content "", expecting "" or identifier or variable or number in E:\htdocs_master\modules\Stat\Actions\PackSiteLogs.inc on line 70
Исправления:
Оптимизация и переход на JSON-логирование
Произведен рефакторинг подсистемы логирования посещений сайта (SiteStat) с целью повышения производительности, надежности и безопасности.
Изменение формата записи логов (modules/SiteStat/api.php)
Переход на JSON Lines: Вместо сохранения логов в виде исполняемого PHPкода (var_export, eval), теперь используется безопасный и стандартный формат JSON Lines. Каждое событие (хит) записывается как отдельный JSONобъект в новую строку.
Безопасность: Полностью исключено использование небезопасной функции eval(), что устраняет уязвимость к выполнению произвольного кода (RCE) через специально сформированные заголовки User-Agent.
** Надежность: Новый формат устойчив к синтаксическим ошибкам, которые ранее могли возникать из-за некорректных данных и приводить к сбою обработки.
Оптимизация записи:
Устранены лишние файловые операции (fopen/fclose) при создании нового файла лога.
Добавлены прагмы PRAGMA synchronous = NORMAL и PRAGMA temp_store = MEMORY для SQLite, что значительно ускоряет запись счетчиков посещений (iHitEnsure, iHitInc) за счет снижения требований к синхронизации с диском.
Обновление скрипта обработки логов (modules/Stat/Actions/PackSiteLogs.inc)
Обратная совместимость: Скрипт PackSiteLogs.inc теперь умеет обрабатывать как старые лог-файлы (через eval), так и новые (через json_decode). Формат определяется автоматически по первому символу в файле.
Надежность обработки: Добавлено удаление некорректных или пустых лог-файлов, чтобы избежать зацикливания и постоянных ошибок при каждом запуске обработчика.