"Око" - сервис статистики посещаемости сайта. Версия 1.0. Официальный сайт: https://okox.ru Форум: https://okox.ru/forum Автор и разработчик: https://okox.ru/author Понравился сервис? Сделайте донат - поблагодарите автора за труд и спонсируйте дальнейшие разработки, в том числе и других бесплатных программ: https://okox.ru/donate Платную установку, настройку, индивидуальную разработку и прочее - закажите по электронной почте: info@okox.ru Ознакомьтесь дополнительно: Создание сайтов на чистом коде, без конструктора: https://okox.ru/design Бесплатные браузерные расширения: https://okox.ru/ext Краткая инструкция по установке и использованию. 1 О программе 1.1 Назначение 1.2 Преимущества 2 Установка 2.1 Технические требования к серверу 2.2 Процесс установки 2.3 Назначение файлов 3 Использование программы 3.1 Пароль доступа к программе 3.1.1 Процесс установки и использование 3.1.2 Другие действия 3.1.3 Подробнее о пароле 3.2 Запуск 3.3 Интерфейс 3.3.1 Блоки данных 3.3.2 Как читать данные 3.3.3 Количественные ограничения 3.3.4 Всплывающая подсказка 3.4 Файлы конфигурации 3.5 Возможности и особенности работы программы 3.5.1 Обновление сведений 3.5.2 Поиск 3.5.3 Стилизация карточек посетителей 3.5.4 Вычисление средних значений 3.5.5 Метрика "Онлайн" 3.5.6 Метрика "Фокус" 3.5.7 Пользовательские события 3.5.8 События текущей и прошлой страниц 3.5.9 Функции обратного вызова 3.5.9.1 Функция готовности скрипта сбора статистики 3.5.9.2 Функция события метрики "Фокус" 3.5.9.3 Функция событий 3.5.10 Переменные 3.5.11 Тенденции 3.5.12 Важные замечания 4 Ошибки и сообщения 4.1 Перечень ошибок и сообщений (функций файла "config/index.php") 4.2 Ошибки и их логирование (функций файла "config/oko.php") 5 Условия использования 6 Политика конфиденциальности 7 Отказ от ответственности 8 Найденные и потенциальные проблемы 9 Конфиденциальность данных статистики 10 Обновления 11 Планируемые изменения 12 Обратная связь 1 О программе 1.1 Назначение Программа предназначена для сбора, систематизации и вывода на экран статистических данных посещений сайта, на который она установлена, и других сайтов (если это разрешено в настройках). 1.2 Преимущества Основные преимущества программы: 1) простота подачи информации; 2) простота установки; 3) скорость работы; 4) гибкие настройки (более ста, в том числе сложносоставных параметров); 5) нетребовательность к ресурсам сервера и браузера; 6) отсутствие нагрузки на работу сайта; 7) независимость (работает на хостинге пользователя, не обращается к сторонним ресурсам и не использует сторонних библиотек); 8) свободное использование (программа полностью бесплатна - и для частных лиц, и для бизнеса, и не содержит ограничений, рекламы и тому подобного); 9) приятный адаптивный интерфейс; 10) наличие уникальных метрик; 11) широкие возможности стилизации выводимых данных на основе множественных, в том числе сложно комбинируемых, параметров; 12) самое компактное хранение статистических данных среди всех аналогичных сервисов. 2 Установка 2.1 Технические требования к серверу PHP версии 5.4.45 и выше. Желательно - версия PHP 7.x.x и выше (смотрите замечание в первом абзаце пункта 3.5.12). Не используйте устаревшие версии PHP - это может быть небезопасно (это общая рекомендация, которая относится не только к использованию программы). 2.2 Процесс установки Если вы следовали инструкции по установке, размещённой в разделе "Загрузка и установка" на сайте программы (https://okox.ru), перейдите к 3 пункту. 1) Скопируйте файл-установщик "oko-1.0-ru.php" в корневую или другую папку сайта. 2) Запустите этот файл в адресной строке браузера. Например, так: https://site.ru/oko-1.0-ru.php В папке, в которой находится запущенный файл, будет создана папка "oko". Вы увидите сообщение об этом на экране монитора. Это папка, которая содержит папки и файлы, необходимые для работы программы. 3) Вы можете переименовать созданную установщиком папку. Установочный файл будет автоматически удалён после установки. 4) Этот пункт с большой вероятностью следует пропустить. Задайте всем папкам, включая вложенные, права доступа 755, а файлам - 644, если это по какой-либо (маловероятной) причине не было сделано установщиком. Иногда для папок могут потребоваться права доступа 777, но не устанавливайте их, если программа корректно функционирует с правами 755 (сохраняет статистические данные). Обратите внимание: в папке "data" расположены только 36 папок. Внутри этих 36 папок нет папок, поэтому при установке прав доступа незачем тратить время и усилия на проверку наличия вложенных в них папок. 5) Разместите в каждом html-файле сайта или в шаблоне строку: <script src="oko/oko.js"></script> Указанное в кавычках после "src=" - это относительный или абсолютный путь к скрипту сбора статистики. Разместите строку перед закрывающим тегом "</body>". Допускается, но не рекомендуется размещение строки перед тегом "</head>" или до отрисовки страницы (смотрите замечание в двадцать втором абзаце пункта 3.5.12). 6) Готово. Теперь можно установить пароль на доступ к интерфейсу программы, чтобы статистика была доступна только вам. Без указания пароля посторонним будет доступна только статистика, внести какие-либо изменения в работу программы через её интерфейс невозможно. 2.3 Назначение файлов Файлы программы можно разделить на две группы. В первой - обрабатываемые браузером посетителя сайта и сервером файлы, которые предназначены для сбора и хранения статистики. Их четыре и их совокупный размер составляет 46 килобайт. Браузер посетителя загружает и использует один из этих файлов - упомянутый в пункте 2.2 скрипт сбора статистики размером 20 килобайт, который периодически обращается к серверу. Во второй группе - остальные файлы, которые используются только администратором программы и предназначены для вывода статистических данных на экран администратора. Вы можете не копировать на сервер папку "skins" и файл "readme.txt" - они не являются обязательными для функционирования программы. 3 Использование программы 3.1 Пароль доступа к программе 3.1.1 Процесс установки и использование 1) переименуйте главный файл программы ("oko/index.php") - назовите его любым доступным именем, например "123.php"; 2) введите в адресной строке браузера путь к этому файлу; 3) в конце строки добавьте вопросительный знак "?"; 4) введите пароль. Адресная строка может выглядеть, например, так: https://site.ru/oko/123.php?myPassword где "myPassword" - пароль, который вы хотите установить. 5) нажмите на ENTER для перехода по адресу. Если пароль установлен, вы увидите сообщение: "Сообщение 101", а в корневой папке с программой появится файл "pwd.php" с хешем пароля. 6) переименуйте файл обратно - в "index.php". Теперь для просмотра статистики потребуется указывать пароль. Например, так: https://site.ru/oko/index.php?myPassword 3.1.2 Другие действия Чтобы изменить пароль, повторите действия, указанные в пункте 3.1.1. Чтобы удалить пароль, удалите файл "oko/pwd.php" и в дальнейшем либо открывайте программу без указания пароля, либо установите новый пароль. 3.1.3 Подробнее о пароле Пароль нигде не хранится, используется хеширование. Для создания пароля используйте буквы латинского алфавита (как прописные, так и строчные) и/или цифры. Не используйте пробел и специальные символы. Длина пароля должна быть не менее 3 и не более 300 символов. При смене версии PHP или хостинга может потребоваться обновление пароля, поскольку из-за разницы используемых алгоритмов генерации хеша пароль может быть не принят и на экране появится сообщение об ошибке 108. Помните о том, что любой человек, имеющий физический доступ к вашему компьютеру, сможет узнать пароль, увидев его в сохранённой браузером адресной строке. 3.2 Запуск Запустите программу, открыв в браузере файл "index.php" в корне программы (в папке "oko"). Например, для сайта "site.ru" адрес файла может быть таким: "https://site.ru/oko/index.php" (или просто "https://site.ru/oko", если это разрешают настройки сервера). Если вы увидите в центре экрана строку "Сообщение 201", то это означает, что данных статистики нет, поскольку сайт ещё никто не посетил. Когда программа начнёт фиксировать посещения, вы увидите её интерфейс, о котором сказано в следующем пункте инструкции. 3.3 Интерфейс 3.3.1 Блоки данных Верхняя часть окна программы содержит блок сводной статистики. Справа он состоит из графиков метрик и посещений по часам, а слева - из основных метрик (или соответственно снизу и сверху - на многих мобильных устройствах). Нижняя часть окна программы содержит блок статистики посещений, который, в свою очередь, состоит из карточек посетителей. Посетители идентифицируются по IP-адресу, то есть каждая карточка имеет свой IP-адрес. 3.3.2 Как читать данные Читать данные в карточке посетителя следует как книгу - слева направо и переходя от одного ряда к другому, сверху вниз. Карточки посетителей сортированы по дате и времени последнего посещения сайта или последней передачи сведений о действиях посетителя сайта. Чем выше позиция карточки на странице, тем ближе к текущим дате и времени дата и время последнего посещения сайта или передачи сведений о действиях посетителя сайта. Данные по каждой странице начинаются с одной из метрик: "день" (обозначается всплывающей подсказкой как "дата посещения", "вчерашнее посещение" и "позавчерашнее посещение"), "новое посещение", "следующая страница". Метрика "длительность посещения последней страницы" поможет вам определить страницу, которая была открыта посетителем последней. 3.3.3 Количественные ограничения Концепция программы предполагает важность и необходимость учёта данных статистики за сегодняшний и вчерашний дни. Данные за сегодня ценны актуальностью, а за вчера - возможностью сравнения с ними сегодняшних данных (некоторые важные метрики программы основаны на таком сравнении). Карточек с данными за сегодня и/или вчера (которые также могут содержать данные и за другие дни) может быть много (как правило, это зависит от посещаемости сайта), а поскольку постраничный вывод данных не предусмотрен, выводимые сведения могут оказаться громоздкими. Чтобы не выводить, а также удалить лишние (устаревшие) данные и ограничить вывод актуальных данных, предусмотрен комплекс параметров, настройку которых вы можете осуществить в файле конфигурации "config/index.php" (смотрите функцию переменной "$m171"). 3.3.4 Всплывающая подсказка Наведите курсор мыши на любой элемент интерфейса и с помощью всплывающей подсказки узнайте его назначение или получите сведения о метрике, которой является этот элемент. Например, если навести курсор на 13 часов, то можно увидеть некие числа. Допустим, это числа "125 / 0 / 132". Это означает, что сегодня, с 13:00 до 13:59 было 125 посещений, вчера - ни одного, а обычно (в среднем) за день - 132 посещения. Таким образом, по умолчанию все метрики графиков последовательно показывают данные за сегодня, вчера и в среднем за день. 3.4 Файлы конфигурации Настройте программу по своему вкусу. Измените цвета, порядок блоков, частоту обновления данных и многое другое. Настройки программы расположены в файлах "config/index.php" (параметры функционирования и интерфейса) и "config/oko.php" (параметры сбора статистики). 3.5 Возможности и особенности работы программы 3.5.1 Обновление сведений Обновление данных осуществляется перезагрузкой страницы программы. Вы можете в любой момент обновить страницу в браузере или настроить параметры автоматического (регулярного и поведенческого) обновления в конфигурационном файле. 3.5.2 Поиск Предусмотрен "быстрый" (при вводе поискового запроса) поиск по основным данным карточек посетителей. Карточки, данные которых не содержат строку поискового запроса, будут скрыты. Если в результате поиска изменится количество карточек на странице, то будет осуществлён переход к первой карточке. Для пользования поиском предназначены следующие клавиши: Enter - показать или скрыть поле поиска; Esc - удалить поисковый запрос или скрыть поле поиска (при скрытом поле поиска - возврат наверх, в начало страницы). Ознакомиться с подробностями и настроить поиск (в том числе пользование им без клавиатуры) вы можете в конфигурационном файле "config/index.php". 3.5.3 Стилизация карточек посетителей Вы можете выделить цветом или скрыть карточки посетителей, отвечающие заданным, в том числе сложно комбинируемым, правилам. Пример правила (нарочито абсурдный - для более широкой демонстрации возможностей стилизации): "если IP-адрес посетителя заканчивается на 55.120 и он посетил не менее 3 разных страниц, среди которых есть содержащая заголовок "главная страница", то подчеркнуть карточку линиями зелёного цвета, расположив их слева и снизу от карточки". Правила задаются в конфигурационном файле "config/index.php" (смотрите функцию переменной "$m175") и применяются к карточкам при загрузке и обновлении данных. Количество правил, условий и команд в них - не ограничены. По умолчанию программа использует правило, которое определяет скликивание рекламного объявления в системе "Яндекс Директ" и выделяет карточку посетителя красным цветом. 3.5.4 Вычисление средних значений По умолчанию почти все метрики блока сводной статистики содержат параметр "в среднем за день". Программа вычисляет среднее значение на основе медианы, но не среднего арифметического. Это означает, что экстремумы значений не повлияют на вычисление среднего значения. Например, если сайт обычно посещают 100-150 человек в день, и в редкие дни их бывает по 300 и более, то среднее значение останется в диапазоне 100-150 посещений. Медианное значение точнее среднего арифметического. Предусмотрены два способа вычисления медианы - только с учётом действий посетителей, а также более точное - с учётом и действий, и бездействий. С подробностями вы можете ознакомиться в конфигурационном файле "config/index.php", в части функциональных настроек. 3.5.5 Метрика "Онлайн" Метрика покажет количество посетителей, которые находятся на сайте сейчас, и пометит их карточки специальным сигналом. Это неточный параметр, и его погрешность находится в зависимости от частоты обновления данных на сервере и в интерфейсе программы. По умолчанию эта погрешность составляет не более 40 секунд. В среднем - вдвое меньше этого значения. 3.5.6 Метрика "Фокус" Определяет элементы на страницах сайта, которые привлекли больше внимания посетителя, чем другие элементы, и регистрирует событие метрики, записывая в карточку посетителя наименование соответствующего элемента. Метрика пытается буквально отследить взгляд посетителя и его продолжительность, которые свидетельствуют о внимании к элементу. Активные действия посетителя (клик мыши, выделение текста и другие) не рассматриваются метрикой. Составляющие методики определения: 1) использование открытых сторонних статистических данных об интенсивности просмотра тех или иных областей экрана монитора (например, посетитель чаще и с большим интересом обращает внимание на информацию, размещённую приблизительно в левой части верхней половины экрана); 2) разделение экрана на множество частей, каждой из которых назначается ценностный коэффициент, формируемый на основе упомянутых в предыдущем пункте статистических данных; 3) определение длительности и повторного показа элемента, его местоположения, движения курсора мыши по элементу, площади занятой элементом части экрана и других характеристик, которые влияют на оценку внимания к элементу; 4) другие составляющие. Метрика не регистрирует события в следующих случаях: 1) не зафиксировано событие прокрутки страницы (считается, что посетитель не проявил должной активности); 2) просмотрена лишь малая часть подключенных элементов; 3) посетитель не проявляет активности на протяжении некоторого времени (не нажимает на клавиши, не прокручивает страницу и не перемещает указатель мыши) - предполагается, что он мог отойти от компьютера; 4) страница потеряла фокус (например, посетитель перешёл на другую вкладку); 5) оценки внимания к элементам разнятся незначительно (нет элемента, который привлёк заметно большее внимание, чем другие); 6) другие случаи. Для подключения элементов метрики "Фокус" добавьте к тегу интересующего вас элемента атрибут "okoFocus" со значением, которое будет сохранено в карточке посетителя. Например: <div okoFocus="Прочитал характеристики товара"> ... </div> Если посетитель внимательно прочитает упомянутые в примере "характеристики товара", скрипт сбора статистики заметит это и отправит в статистику (при соблюдении упомянутых ранее и других условий) событие метрики "Фокус". В интерфейсе программы, в карточке посетителя, вы увидите сообщение: "Прочитал характеристики товара". Если сказать точнее, будет указано "Прочитал характеристики т...", поскольку длина такого сообщения ограничена 25 символами (смотрите замечание далее). Количество регистрируемых на одной странице событий метрики можно ограничить в файле конфигурации "config/oko.php". Там же можно задать и коэффициент оценки качества просмотра элемента - чем он выше, тем строже будет требование программы к длительности и качеству просмотра элемента. Кроме того, вы можете принудительно отправить в статистику событие метрики "Фокус" с помощью вызова функции "okoEvent" с дополнительным аргументом true логического типа. Например: okoEvent("Прочитал характеристики товара", true). Эта функция, но с одним аргументом, используется также в регистрации пользовательского события (смотрите пункт 3.5.7). Обратите внимание: 1) максимальная длина значения атрибута "okoFocus" - 25 символов (значение большей длины будет сокращено до 25 символов с добавлением троеточия в конце); 2) для работы метрики требуется подключить не менее двух элементов; 3) избегайте вложенного подключения элементов (когда в подключенном родительском элементе присутствует подключенный дочерний элемент) - это может привести к некорректной работе метрики; 4) использование сложных визуальных эффектов и динамического контента может привести к некорректной работе метрики (тем не менее, метрика отслеживает удаление и добавление элементов в DOM); 5) элементы, для которых не зарегистрировано событие метрики, не стоит однозначно считать неинтересными посетителю - оценки внимания к элементам могут отличаться незначительно, и тогда можно предположить, что страница не привлекла особенного внимания посетителя или, наоборот, большая часть страницы вызвала у него интерес (об этом также может говорить продолжительное нахождение посетителя на странице в отсутствие событий метрики); слишком высокое значение коэффициента оценки качества просмотра элемента также может привести к тому, что событие метрики не будет зарегистрировано там, где следовало бы; 6) настройки, связанные с метрикой "Фокус", имеются в обоих конфигурационных файлах; 7) в пункте 3.5.9.2 вы можете ознакомиться с функцией обратного вызова события метрики "Фокус". 3.5.7 Пользовательские события Так называются сообщения, формируемые пользователем, которые сайт отправляет программе при выполнении заданного пользователем условия. Допустим, вы хотите отследить нажатие посетителем кнопки на сайте. Для этого вы можете указать в html-коде сайта примерно следующую строку: <button onclick="okoEvent('Нажал на кнопку заказа')">заказать</button> В данном случае событие клика по кнопке "заказать" будет отправлено сайтом программе, в карточку посетителя. В ней пользователь "Око" увидит сообщение: "Нажал на кнопку заказа". Пользовательское событие следует отправлять через вызов функции "okoEvent" с указанием в качестве единственного аргумента данных строкового, числового или логического типа длиной не более 25 символов (аргумент большей длины будет сокращён до 25 символов с добавлением троеточия в конце). Таким образом, обладая некоторыми навыками в программировании, можно отследить любые действия посетителя сайта, в том числе сложносоставные. Настройки, связанные с пользовательскими событиями, имеются в обоих конфигурационных файлах. 3.5.8 События текущей и прошлой страниц Программа фиксирует различные действия посетителя сайта и сообщает о них пользователю. События текущей страницы, то есть страницы, на которой сейчас находится посетитель сайта (если они есть) отображены среди основной информации о посетителе в блоке статистики посещений (в карточке посетителя). События прошлой страницы также находятся в карточке посетителя, после параметров системы или одной из метрик: "день" (обозначается всплывающей подсказкой как "дата посещения", "вчерашнее посещение" и "позавчерашнее посещение"), "новое посещение", "следующая страница", и представлены в виде количества (числа) таких событий. Чтобы увидеть описание событий, нужно навести курсор мыши на их обозначения (число и иконку). Обратите внимание: расположение метрики "события прошлой страницы" может ввести в заблуждение относительно того, к какой странице она относится. Метрика, как следует из её названия, указывает на страницу, предшествующую той, в которой она находится. В свою очередь, в карточке посетителя эта страница может располагаться довольно далеко от страницы с метрикой (это зависит от количества посещённых страниц). 3.5.9 Функции обратного вызова 3.5.9.1 Функция готовности скрипта сбора статистики Для специалистов. В функцию "okoCompletedFunction" (JavaScript), если она объявлена, будет передан числовой аргумент - время (в миллисекундах), прошедшее с момента запуска скрипта до окончания его загрузки, записи данных статистики в файл данных и получения сведений о системе (смотрите пункт 3.5.10). Затем функция будет вызвана. Переменная "okoCompletedFunctionDefined" содержит и перед каждым вызовом функции "okoCompletedFunction" записывает логическое значение, которое указывает на то, объявлена (true) или не объявлена (false) функция "okoCompletedFunction". Начальное значение переменной "okoCompletedFunctionDefined" - null (это значение указывает на то, что данные статистики ещё не были сохранены). Пример функции "okoCompletedFunction": function okoCompletedFunction(a) { console.log("статистика была сохранена за "+a+" миллисекунд"); } 3.5.9.2 Функция события метрики "Фокус" Для специалистов. При регистрации события метрики "Фокус" (смотрите пункт 3.5.6) и его записи, в функцию "okoFocusFunction" (JavaScript), если она объявлена, будут переданы три аргумента. Первый содержит имя события. Второй - его порядковый номер. Третий, логический аргумент, сообщает о регистрации события (false) или о записи события в файл данных (true). Получите аргументы на стороне клиента и обработайте их. Объявите функцию с именем "okoFocusFunction" и тремя параметрами. Можно объявить функцию как до, так и после вызова скрипта сбора статистики. Также обратите внимание на то, что массив "okoFocusEvents" содержит имена событий метрики "Фокус", расположенные в порядке их регистрации. Переменная "okoFocusFunctionDefined" содержит и перед каждым вызовом функции "okoFocusFunction" записывает логическое значение, которое указывает на то, объявлена (true) или не объявлена (false) функция "okoFocusFunction". Начальное значение переменной "okoFocusFunctionDefined" - null. Пример функции "okoFocusFunction": function okoFocusFunction(a, b, c) { if (a == "Блок 1" && b == 3 && c) { console.log("Основной блок третим по счёту привлёк внимание посетителя сайта, и это отражено в статистике."); } } В приведённом примере мы отреагировали и на событие, и на его запись в файл данных, поскольку запись без регистрации события невозможна. 3.5.9.3 Функция событий Для специалистов. Вы можете выполнить любой JavaScript-код при регистрации и записи скриптом сбора статистики (смотрите пятый абзац пункта 2.2) событий, рассмотренных в пунктах 3.5.7 и 3.5.8 (для текущей страницы). Каждому событию и действию с ним (регистрации события или его последующей записи в файл данных) можно назначить свой JavaScript-код. Объявите функцию с именем "okoEventsFunction" и двумя параметрами. Можно объявить функцию как до, так и после вызова скрипта сбора статистики. При регистрации события и его записи, в функцию "okoEventsFunction", если она объявлена, будут переданы два аргумента. Первый - числовой или строковый, который является идентификатором события. Второй - логический, который обозначает действие с событием (регистрация или запись в файл данных). Получите аргументы на стороне клиента и обработайте их. Значения первого аргумента: 1 - клик правой кнопки мыши; 2 - клик на телефонный номер; 3 - клик на мессенджер; 4 - клик на социальную сеть; 5 - клик на электронную почту; 6 - клик в поле ввода; 7 - достигнуто начало страницы; 8 - достигнут конец страницы; 9 - выделен текст; 10 - покинул вкладку с сайтом, а затем вернулся; строка - соответствующее пользовательское событие. Значения второго аргумента: false - регистрация события (обрабатывается каждый раз); true - запись события в файл данных (обрабатывается один раз для текущей страницы). Переменная "okoEventsFunctionDefined" содержит и перед каждым вызовом функции "okoEventsFunction" записывает логическое значение, которое указывает на то, объявлена (true) или не объявлена (false) функция "okoEventsFunction". Начальное значение переменной "okoEventsFunctionDefined" - null. Пример функции "okoEventsFunction": function okoEventsFunction(a, b) { if (a == 5 && b) { console.log("Клик на электронную почту записан в статистику."); } } В приведённом примере мы отреагировали и на событие, и на его запись в файл данных, поскольку запись без регистрации события невозможна, тогда как между регистрацией события и его записью может пройти некоторое время, определяемое частотой обновления данных. 3.5.10 Переменные Для специалистов. Некоторые сведения об устройстве посетителя сайта и его действиях хранятся в глобальных переменных (JavaScript), которые можно использовать. Технические параметры устройства посетителя сайта, которые легко получить (например, доступность использования cookies, информация о которой содержится в "navigator.cookieEnabled"), не сохраняются в переменных. Перечень переменных и их значений: "okoValueIP" - IP-адрес посетителя; "okoValueSystem" - операционная система посетителя; "okoValueBrowser" - браузер посетителя и его версия; "okoValueIsBot" - является ли посетитель ботом (определяется настройками программы); "okoValueEventCustom" - последнее зарегистрированное пользовательское событие; "okoValueEventFocus" - последнее зарегистрированное событие метрики "Фокус". Первоначальные (в основном, до ответа сервера) значения переменных - undefined. Если значение не получено или возникла ошибка, переменная получает значение null. Обратите внимание: переменные "okoValueSystem" и "okoValueBrowser" могут содержать неверные данные, поскольку не существует способа точного определения операционной системы и браузера. 3.5.11 Тенденции Тенденция - это метрика блока сводной статистики, которая сообщает о заметном стремлении числового показателя той или иной метрики к повышению или понижению. Есть четыре вида тенденций: 1) тенденция к росту; 2) устойчивый рост; 3) тенденция к снижению; 4) устойчивое снижение. Тенденция выделена цветом. По умолчанию это красный для понижения и зелёный для повышения, поскольку обычно рост показателей статистики ассоциирован с успехом, а снижение - с неудачей. В метрике "отказы" установлена обратная корреляция цвета - зелёный для понижения и красный для повышения. Обратите внимание: 1) незначительное изменение роста на снижение, и наоборот, скорее всего не повлияют на тенденцию; 2) в часовом графике и графике метрик тенденция выделяет цветом крайний правый столбец, вне зависимости от того, что он обозначает. Пример: по умолчанию крайний правый столбец в графиках - это показатель среднего значения. Если он окажется подсвечен тенденцией, то это будет означать рост или снижение показателя метрики, а не рост или снижение её среднего значения; 3) обращая внимание на тенденцию, учитывайте совокупные (по конкретной метрике) статистические данные за несколько предыдущих дней. В противном случае информирование о тенденции может показаться вам ошибочным. 3.5.12 Важные замечания 1) Для быстрой работы той части программы, которая ответственна за вывод статистики на экран, используйте версию PHP 7.x.x и выше. Использование устаревшей версии PHP существенно замедлит загрузку и вывод статистики на экран. Например, где в версии PHP 7.x.x вывод данных осуществляется за секунду, там в версии PHP 5.x.x могут пройти и 20-30 секунд. Кроме того, использование устаревшей версии PHP может быть небезопасным - в широком контексте, а не только при работе с "Око". 2) По умолчанию все метрики графиков при наведении на них курсора мыши последовательно показывают данные за сегодня, вчера и в среднем за день. Например: "45 / 37 / 42". 3) Разница в процентах в блоке сводной статистики не будет указана, если она составляет более 99 процентов. 4) Метрики "операционная система" и "браузер" могут показывать неверные данные. Воспринимайте их как ориентировочные или отключите их. Любой аналогичный сервис статистики часто показывает недостоверные данные по операционной системе и браузеру, поскольку не существует способа их точного определения. 5) Многократное и длительное чередование наличия и отсутствия сигнала метрики "онлайн" в карточке (смотрите пункт 3.5.5) является характерным поведением бота. 6) Если посещённая страница - индексная и без указания в адресной строке, то вместо адреса страницы будет выведен домен сайта. Это сделано для различия между "https://site.ru" и "https://site.ru/index.html". 7) Имена доменов, содержащие unicode-символы, будут преобразованы (если это допускает конфигурация сервера) в имена с символами utf-8 при выводе источника перехода и формировании ссылки на него, но не будут преобразованы при выводе адреса страницы и формировании ссылки на неё (смотрите предыдущий пункт). Это сделано по соображениям удобства пользователя и оптимизации скорости работы программы. 8) Порядок перечисляемых событий текущей и прошлой страниц не означает очерёдность срабатывания этих событий (в данной версии программы она не определяется), а повторяющиеся (на одной странице) события не учитываются. 9) Не вносите изменения ни в какие файлы программы, кроме содержащихся в папках "config", "lang" и "skins". Это запрещено условиями использования программы (ознакомьтесь с условиями ниже) и часто приводит к ошибке в её работе. 10) Файлы данных во вложенных папках папки "data" (с расширением ".dat") чувствительны к любым не программным воздействиям: изменению, переименованию, копированию и другим. В результате этих манипуляций они почти наверняка окажутся испорченными и программа выдаст ошибку (с указанием файла, в котором обнаружена ошибка). Перенос файлов данных на другой хостинг также приведёт к ошибке, поэтому при смене провайдера хостинга необходимо удалить все файлы данных (смотрите описание функции переменной "$m511" в файле конфигурации "config/index.php"). 11) Время от времени (в зависимости от настроек) программа удаляет устаревшие и чрезмерно большие массивы данных. 12) Ошибки в конфигурационном файле "config/oko.php" исправляются программой автоматически и без извещения, а переменные с ошибкой принимают значение по умолчанию. Ошибки в файле "config/index.php" можно исправить только вручную - для этого ориентируйтесь на перечень ошибок, приведённый ниже. 13) Визиты ботов иногда не фиксируются, поскольку обычно боты заходят только на миг, и программа не успевает получить о них необходимые сведения. По умолчанию программа игнорирует все визиты ботов. 14) После вывода статистики на экран программа не взаимодействует с сервером и не осуществляет никаких действий, кроме обработки некоторых событий и регулярного обновления данных (перезагрузки программы), если это установлено в настройках. 15) По результату вывода статистики на экран в консоли браузера будут выведены некоторые сведения - об использовании ресурсов сервера и другие. "Пиковое значение объёма памяти" в консоли - это значение функции PHP "memory_get_peak_usage". 16) Метрика "длительность посещения последней страницы" определяется тогда, когда это возможно, и, в частности, не определяется, если страница была закрыта нестандартным образом, отличным от клика мыши по вкладке или использования горячих клавиш браузера. Чрезмерно большое значение метрики (десятки, сотни и даже тысячи часов) не является ошибочным и скорее свидетельствует о поведении бота. Отсутствие этой метрики также указывает на значительную вероятность того, что посетитель является ботом. Длительность посещения вообще и отдельных страниц - не определяются, поскольку ценность этих метрик не превышает ресурсных затрат на установление их значения. И в целом невозможно определить длительность посещения сайта и его страниц с абсолютной точностью. 17) Карточка посетителя, которая в момент зарузки интерфейса программы получает новые статистические данные, не будет показана. И хотя получение данных занимает ничтожно малое время, может возникнуть ситуация, при которой карточка исчезнет из содержимого блока статистики посещений. Просто перезагрузите страницу с программой (можно сразу, без паузы) или дождитесь автоматической перезагрузки - данные уже будут получены карточкой и вы её увидите. 18) Метрика "устройство" показывает данные для последней посещённой страницы. Программа не фиксирует поворот экрана и масштабирование, поэтому в ряде случаев такие данные метрики, как пропорция ширины и высоты экрана и позиция прокрутки страницы, будут неверными. 19) Если страницы со скриптом сбора статистики открыты в нескольких вкладках, окажется невозможным определить, для какой из страниц будут сохранены и в интерфейсе программы показаны метрики текущей и прошлой страниц ("устройство", "события", "события прошлой страницы", "длительность посещения последней страницы" и (иногда) "пользовательское событие" и "Фокус"). 20) Если какие-либо данные, полученные программой, по законодательству вашей страны могут считаться персональными (например, IP-адрес), откажитесь от их использования (отключите их вывод в настройках). 21) Промежуточное событие "покинул вкладку с сайтом" для события текущей и прошлой страниц "покинул вкладку с сайтом, а затем вернулся" срабатывает при потере фокуса на странице с сайтом, вызванной переходом на другую вкладку или появлением объекта (окна), который полностью закрывает собой страницу. В интерфейсе "Око" событие смены вкладки на неактивную срабатывает при любой потере фокуса на странице с программой. 22) Для специалистов. Если вам необходимо загружать скрипт сбора статистики до отрисовки страницы, например перед тегом "</head>", то имейте в виду, что в ряде случаев размеры страницы и, возможно, некоторые другие метрики не будут получены. Кроме того, вам потребуется изменить значения элементов 1 и/или 3 (нумерация начинается с единицы) массива переменной "$m017" файла конфигурации "config/oko.php" на равные нулю, поскольку в противном случае программа будет считать неполученные размеры страницы признаком посещения бота, и тогда статистика не будет сохранена. По некоторым причинам событие "DOMContentLoaded" не используется для решения проблемы неполученных данных. Данная проблема ситуативна, поэтому рекомендуется провести тестирование получения данных статистики при загрузке скрипта до отрисовки страницы и различных значениях массива переменной "$m017". 23) Метрика "клик на социальную сеть" намеренно обозначена логотипом в виде птички социальной сети Twitter, несмотря на то, что название сети и её логотип были изменены. 4 Ошибки и сообщения 4.1 Перечень ошибок и сообщений (функций файла "config/index.php") Далее по порядку приведены коды и описания ошибок и сообщений. Сообщения: 101 - пароль установлен, переименуйте главный файл программы обратно, в "index.php"; 102 - пароль не был установлен, поэтому указывать его не нужно 201 - данных нет - ни одного посещения не зарегистрировано; 202 - ни одна карточка посетителя не может быть показана - перезагрузите страницу с программой (исключительная ситуация, возникающая в случае, когда во все карточки в настоящий момент вносятся новые статистические данные; карточка, которая в момент зарузки программы получает новые данные, не будет показана в интерфейсе программы; перезагрузите страницу с программой - данные уже будут получены карточками); 203 - все данные статистики удалены; 204 - данных нет - все карточки посетителя удалены или, согласно настройкам вывода и/или стилизации карточек, не могут быть выведены; 301 - IP-адрес пользователя не входит в перечень разрешённых для доступа к программе; 302 - доступ к программе с IP-адреса пользователя запрещён; 303 - доступ к программе временно запрещён. Ошибки: 101 - ошибка получения данных для проверки пароля; 102 - неверный пароль; 103 - пароль не указан; 104 - пароль слишком короткий (менее 3 символов); 105 - пароль слишком длинный (более 300 символов); 106 - запрещённые символы в составе пароля; 107 - не удалось сохранить пароль (ошибка записи в файл); 108 - неизвестный алгоритм хеширования пароля (пароль необходимо обновить; смотрите замечание в пункте 3.1.3); 201 - ошибка чтения файла "config/index.php"; 202 - ошибка чтения языкового файла из папки "lang"; 203 - не найден файл "base.js"; 204 - ошибка операции с файлом данных (число через дробь - уточнение ошибки (смотрите перечень уточнений ниже); в скобках - имя файла); уточнения для ошибки 204: с 1 по 21, 30, 31, 35 - не удаётся интерпретировать данные (возможно, файл повреждён при изменении извне, не программным способом); 22 - не удаётся открыть файл для чтения; 23 и 24 - не удаётся закрыть файл; 25 - не удаётся получить размер файла; 26 - не удаётся удалить файл, отправленный на удаление в результате появления ошибки 210; 27 и 36 - не удаётся удалить архивный файл (смотрите описание функции переменной "$m171" в файле конфигурации "config/index.php"); 28 - не удаётся удалить файл при удалении данных статистики; 29 - файл не содержит данных (пуст); 33 - не удаётся удалить файл, предназначенный для удаления по IP-адресу (смотрите описание функции переменной "$m517" в файле конфигурации "config/index.php"); 34 - не удаётся удалить файл, предназначенный для удаления по размеру карточки посетителя (смотрите описание функции переменной "$m518" в файле конфигурации "config/index.php"); 205 - не найден файл "about.txt"; 206 - файл "about.txt" был повреждён и по этой причине программа удалила его с сервера; 207 - переменная языкового файла, содержащая заголовок сообщения об ошибке не определена или содержит ошибки; 208 - переменная языкового файла, содержащая заголовок сообщений не определена или содержит ошибки; 209 - неправильное имя файла данных (число через дробь - уточнение ошибки; в скобках - имя файла; указанный файл данных необходимо удалить); 210 - файл данных был изменён извне, не программным способом (в скобках - имя файла; указанный файл данных необходимо удалить); 211 - не найдена папка "data"; 212 - ошибка чтения файла "config/oko.php"; 213 - не найден файл "index.js"; 216 - переменная языкового файла не определена (в скобках - имя переменной); 217 - переменная языкового файла не задана (пуста), (в скобках - имя переменной); 218 - переменная языкового файла не является строкой (в скобках - имя переменной); 219 - неизвестная ошибка в переменной языкового файла (в скобках - имя переменной); 220 - переменная файла конфигурации "config/index.php" не определена (в скобках - имя переменной); 221 - переменная файла конфигурации "config/index.php" не является целым или дробным числом (в скобках - имя переменной); 222 - переменная файла конфигурации "config/index.php" не является целым числом (в скобках - имя переменной); 223 - переменная файла конфигурации "config/index.php" не является строкой (в скобках - имя переменной); 224 - переменная файла конфигурации "config/index.php" не задана (пуста), (в скобках - имя переменной); 225 - переменная файла конфигурации "config/index.php" не является логической (в скобках - имя переменной); 226 - переменная файла конфигурации "config/index.php" не является шестнадцатиричной строкой (в скобках - имя переменной); 227 - переменная файла конфигурации "config/index.php" не имеет длину 3 или 6 символов (в скобках - имя переменной); 228 - значение переменной файла конфигурации "config/index.php" находится вне допустимого диапазона (в скобках - имя переменной); 229 - значение переменной файла конфигурации "config/index.php" указано с ошибкой (в скобках - имя переменной); 230 - переменная языкового файла содержит недопустимый символ - "<" (в скобках - имя переменной); 231 - переменная языкового файла содержит недопустимый символ - ">" (в скобках - имя переменной); 232 - переменная файла конфигурации "config/index.php" не является массивом (в скобках - имя переменной); 233 - переменная (массив) файла конфигурации "config/index.php" имеет недопустимое количество элементов (в скобках - имя переменной); 234 - один или несколько элементов переменной (массива) файла конфигурации "config/index.php" не являются целым положительным числом или нулём (в скобках - имя переменной); 235 - хотя бы одна из переменных "$m127" и "$m128" должна иметь значение true; 236 - переменная файла конфигурации "config/index.php" не является ни числом, ни шестнадцатиричной строкой (в скобках - имя переменной); 237 - переменная "$m100" файла конфигурации "config/index.php" не определена; 238 - переменная "$m100" файла конфигурации "config/index.php" не является массивом; 239 - один или несколько элементов переменной (массива) "$m100" файла конфигурации "config/index.php" не являются строкой; 240 - файл скина не найден (в скобках - имя файла); 241 - ошибка подключения файла скина (в скобках - имя файла); 242 - переменная языкового файла содержит недопустимый символ - одинарную кавычку (в скобках - имя переменной); 243 - переменная языкового файла имеет длину менее 3 символов (в скобках - имя переменной); 244 - переменная языкового файла начинается с недопустимого (служебного) символа - "^" (в скобках - имя переменной); 245 - основной файл программы повреждён; 246 - один или несколько элементов переменной (массива) файла конфигурации "config/index.php" не являются единицей или нулём (в скобках - имя переменной); 247 - оба элемента переменной (массива) "$m170" под номерами 12 и 13 файла конфигурации "config/index.php" равны нулю (хотя бы один из них должен быть равным единице); 248 - файл "base.js" был повреждён и по этой причине программа удалила его с сервера; 249 - не найден файл "oko.js"; 250 - не найден файл "oko.php"; 251 - файл "oko.js" был повреждён и по этой причине программа удалила его с сервера (сбор статистических данных не осуществляется); 252 - файл "oko.php" был повреждён и по этой причине программа удалила его с сервера (сбор статистических данных не осуществляется); 253 - файл "index.js" был повреждён и по этой причине программа удалила его с сервера; 254 - один или несколько элементов переменной (массива) файла конфигурации "config/index.php" находятся вне допустимого диапазона (в скобках - имя переменной); 255 - один или несколько элементов переменной (массива) файла конфигурации "config/index.php" не являются целым положительным числом (в скобках - имя переменной); 256 - переменная (массив) файла конфигурации "config/index.php" содержит ключ или ключи, отличные от предусмотренных по умолчанию целочисленных ключей - начинающихся с нуля и идущих по порядку (удалите ключи - их использование не предусмотрено; в скобках - имя переменной); 257 - один или несколько элементов переменной (массива) файла конфигурации "config/index.php" не являются строкой (в скобках - имя переменной); 258 - синтаксическая ошибка в переменной "$m175" файла конфигурации "config/index.php" (в скобках - порядковый номер элемента массива переменной, в котором обнаружена ошибка); 259 - ошибка аргумента правила в переменной "$m175" файла конфигурации "config/index.php" (такой аргумент не существует; в скобках - порядковый номер элемента массива переменной, в котором обнаружена ошибка); 260 - ошибка условия правила в переменной "$m175" файла конфигурации "config/index.php" (некорректное условие; в скобках - порядковый номер элемента массива переменной, в котором обнаружена ошибка); 261 - ошибка аргумента условия в переменной "$m175" файла конфигурации "config/index.php" (некорректный аргумент условия; в скобках - порядковый номер элемента массива переменной, в котором обнаружена ошибка); 262 - ошибка указания числа в переменной "$m175" файла конфигурации "config/index.php" (слишком большое число, более 10 разрядов; в скобках - порядковый номер элемента массива переменной, в котором обнаружена ошибка); 263 - ошибка указания числа в переменной "$m175" файла конфигурации "config/index.php" (число начинается с нуля, но нулём не является; в скобках - порядковый номер элемента массива переменной, в котором обнаружена ошибка); 264 - некорректная команда в переменной "$m175" файла конфигурации "config/index.php" (такой команды не существует; в скобках - порядковый номер элемента массива переменной, в котором обнаружена ошибка); 265 - некорректная команда в переменной "$m175" файла конфигурации "config/index.php" (не указан аргумент команды; в скобках - порядковый номер элемента массива переменной, в котором обнаружена ошибка); 266 - некорректный аргумент команды в переменной "$m175" файла конфигурации "config/index.php" (в скобках - порядковый номер элемента массива переменной, в котором обнаружена ошибка); 267 - ошибка указания числа в переменной "$m175" файла конфигурации "config/index.php" (экспоненциальная запись числа недопустима; в скобках - порядковый номер элемента массива переменной, в котором обнаружена ошибка); 268 - синтаксическая ошибка в переменной "$m175" файла конфигурации "config/index.php" (запятые не должны идти подряд; в скобках - порядковый номер элемента массива переменной, в котором обнаружена ошибка); 269 - синтаксическая ошибка в переменной "$m175" файла конфигурации "config/index.php" (числовой аргумент правила, который используется как аргумент условия, не должен содержать оператор строгого соответствия; в скобках - порядковый номер элемента массива переменной, в котором обнаружена ошибка); 270 - некорректные параметры специального аргумента правила в переменной "$m175" файла конфигурации "config/index.php" (в скобках - порядковый номер элемента массива переменной, в котором обнаружена ошибка); 271 - один или несколько элементов переменной (массива) "$m161" файла конфигурации "config/index.php" имеют недопустимое значение (действие "показать или скрыть всплывающую подсказку" нельзя назначать для жестов); 272 - переменная "$m101" файла конфигурации "config/index.php" не определена; 273 - один или несколько элементов переменной (массива) файла конфигурации "config/index.php" не являются целым числом (в скобках - имя переменной); 274 - переменная языкового файла, содержащая сообщение для файла "data/test.php" не определена или содержит ошибки; 301 - ошибка определения даты; 302 - версия PHP не подходит для работы программы (требуется версия 5.4.45 или выше); 303 - серверная ошибка (число через дробь - уточнение ошибки); 304 - неизвестная ошибка (вероятно - ошибка в коде программы или несовместимость команд с используемой версией PHP, или некорректные настройки сервера; посетите сайт программы https://okox.ru - возможно, на нём уже размещено обновление, которое исправит эту ошибку; также обратите внимание на то, что в корневой папке с программой появится файл "error.err" (не путайте с файлом "error.log" - смотрите пункт 4.2) с зашифрованными описанием ошибки и версией PHP, под которой была запущена программа - пожалуйста, пришлите этот файл (сам файл, а не его содержимое) по электронной почте: info@okox.ru); 305 - ошибка в серверных настройках часового пояса (в файле конфигурации "php.ini"), которую не удалось устранить автоматически; 306 - IP-адрес пользователя не определён; 307 - не удалось получить текущий URL; 999 - нарушение в результате единичного события. 4.2 Ошибки и их логирование (функций файла "config/oko.php") Ошибки на этапе сбора статистики обычно делают сохранение данных невозможным. При возникновении ошибки, она автоматически заносится в журнал ошибок (если это разрешают настройки файла конфигурации "config/oko.php"), который представляет собой файл "error.log" (не путайте с файлом "error.err" - смотрите описание ошибки 304 в пункте 4.1), расположенный в корневой папке с программой (если этого файла нет, он будет создан). Предусмотрены четыре типа ошибок: 1) SERVER ERROR - серверная файловая ошибка. Это ошибки чтения, записи и другие файловые ошибки, как правило, вызванные проблемами сервера. В некоторых случаях, однако, данные могут быть успешно сохранены. 2) FILE ERROR - обнаружены сохранённые некорректные данные. Это повреждённые в результате не программного вмешательства данные. Файл, в котором они обнаружены, будет удалён. 3) DATA ERROR - получены некорректные данные для сохранения. Это отсутствующие или переданные не программным способом данные, которые могут говорить об удалённом взломе модуля передачи данных в файле "oko.js". Если вы столкнулись с этим типом ошибок, обратите внимание на переданный в лог IP-адрес, с которого была инициирована ошибка - возможно, получение статистики с этого IP-адреса следует заблокировать (в файле конфигурации "config/oko.php"). 4) BLOCKED - попытка записи данных в заблокированный файл. Файл, в который записываются статистические данные, блокируется на несколько миллисекунд. В это время повторное обращение к нему не допускается. Сама попытка записи данных в заблокированный файл ошибкой не является, но приводит к тому, что эти данные не будут записаны. Перечень идентификаторов ошибок для типов SERVER ERROR и DATA ERROR: SERVER ERROR: 1 - файл не найден; 2 - не удалось открыть файл; 3 - не удалось закрыть файл; 4 - ошибка чтения файла; 5 - ошибка записи в файл; 6 - не удалось получить время последнего изменения файла; 7 - не удалось получить размер файла; 8 - другая ошибка. DATA ERROR: 1 - IP-адрес не определён; 2 - несанкционированный доступ (запрос на сохранение данных статистики получен из неизвестного или запрещённого источника); 3 - User agent не определён; 4 - домен, который использует сбор статистики, не относится к числу дополнительных (разрешённых); 5 - некорректный IP-адрес; 6 - переданы некорректные параметры страницы; 7 - переданы параметры страницы недопустимо большого объёма; 8 - передано некорректное количество параметров страницы; 9 - передано некорректное пользовательское событие или событие метрики "Фокус"; 10 - переданы некорректные регулярные сведения о действиях посетителя сайта; 11 - имя сервера не определено; 12 - другая ошибка. При возникновении ошибки, в файл лога будут переданы через запятую следующие параметры в указанном порядке: дата и время, тип ошибки, идентификатор ошибки, код ошибки (не документирован), имя файла с ошибкой, IP-адрес пользователя. Если параметр не определён, на его месте окажется вопросительный знак. Если в настройках разрешён вывод ошибки в консоль браузера, то в неё будут переданы сообщение "OKO ERROR" и далее в скобках и через запятую следующие параметры в указанном порядке: дата и время, тип ошибки, идентификатор ошибки, код ошибки. 5 Условия использования Разрешается бесплатно, неограниченный срок и в неограниченном количестве: копировать и хранить файлы программы, распространять программу (кроме случаев, перечисленных ниже, в "Запрещается"), устанавливать и использовать программу на сайтах, вносить изменения в конфигурационные файлы "config/index.php" и "config/oko.php", папки и файлы внутри папок "config", "lang", "skins". Запрещается: использовать программу или её части не по назначению, продавать программу, модифицировать функционал программы, распространять программу неопределённому и/или неограниченному кругу лиц без прилагаемой к программе или ссылке на неё непосредственно рядом ссылки на официальный сайт (https://okox.ru), декомпилировать и/или изменять файлы, не обозначенные выше (в "Разрешается бесплатно, неограниченный срок и в неограниченном количестве"). 6 Политика конфиденциальности Важно: информация в этом пункте инструкции относится к исходному коду (не используется программой) основных файлов программы и не может относиться с однозначной достоверностью к закрытому коду (используется программой). Подробности смотрите здесь: https://okox.ru/security.html Преамбула: сайт https://okox.ru и размещённая на нём программа не получают персональные данные (кроме IP-адреса, который в некоторых случаях может относиться к персональным данным) и никуда их не передают (включая IP-адрес). Официальный сайт программы (https://okox.ru; далее в тексте - СП), равно как и сама программа: 1) не получают персональные данные. Исключение - IP-адрес посетителя СП, пользователя программы и посетителей сайта, на котором установлен модуль программы - скрипт сбора статистики. IP-адрес посетителя СП будет сохранён в базе данных СП при загрузке программы с СП - для установления ограничения на загрузку (не более одной загрузки в сутки с одного IP-адреса). IP-адрес пользователя программы предназначен только для чтения и необходим для функционирования программы. Программа получает, сохраняет и удаляет IP-адрес посетителей сайта, на котором установлен модуль программы - скрипт сбора статистики; 2) не передают третьим лицам ни персональные (это также следует из предыдущего пункта, поскольку невозможно передать то, что не получено), ни обезличенные данные, включая IP-адрес посетителя СП, пользователя программы и посетителей сайта, на котором установлен модуль программы - скрипт сбора статистики; 3) не используют cookies; 4) не используют сторонние (не входящие в комплект поставки программы) ресурсы (библиотеки, модули, скрипты и прочие), кроме сервера и языковых интерпретаторов; 5) не обращаются к каким-либо сайтам и другим веб-ресурсам. СП содержит модуль программы - скрипт сбора статистики. Установленная на сервере программа не функционирует вне основной папки программы. Программа получает, анализирует, сохраняет, дополняет и удаляет обезличенные статистические данные посетителей сайта, такие как время посещения, наименование страницы посещения, наименование операционной системы, наименование браузера, размеры и пропорции экрана, поведенческие данные (позиция прокрутки страницы, области просмотра, клики и так далее) и другие. Если какие-либо данные посетителей сайта, отображаемые программой в её интерфейсе, по законодательству вашей страны считаются персональными (например, IP-адрес), отключите в настройках программы вывод этих данных. 7 Отказ от ответственности Программа предоставляется "как есть", без каких-либо гарантий, явных или подразумеваемых. Автор не несёт ответственность за любые претензии или ущерб, связанные с использованием или распространением программы или её отдельных файлов. Также ознакомьтесь с вопросом, касающимся безопасности кода основных файлов программы, здесь: https://okox.ru/security.html 8 Найденные и потенциальные проблемы 1) Программа не работает в браузере Internet Explorer. 2) Функционал программы может оказаться частично несовместимым с будущей версией PHP, и вместо статистики вы увидите сообщение об ошибке номер 304, пустой белый экран или ошибку на уровне языка (не обрабатываемую программой). В этом случае посетите сайт программы https://okox.ru - возможно, на нём уже размещено обновление, которое исправит эту несовместимость. Если обновления не окажется, пожалуйста, пришлите файл "error.err" (если он будет создан; смотрите описание ошибки 304 в пункте 4.1; не путайте с файлом "error.log" - смотрите пункт 4.2), снимок экрана и другие сведения о проблеме по адресу электронной почты: info@okox.ru 3) При запуске интерфейса программы на хостинге с устаревшими техническими характеристиками может появиться ошибка сервера "503 Service Unavailable". Если обычная перезагрузка программы не устранит ошибку, уменьшите необходимые значения переменной "$m171" в конфигурационном файле "config/index.php" и/или измените хостинговые настройки времени выполнения скрипта. 4) Для специалистов. Программа использует функцию PHP "parse_url", некорректная работа которой в некоторых крайне специфических ситуациях приведёт к невозможности сбора статистики. 9 Конфиденциальность данных статистики Для специалистов. Для того, чтобы файлы данных статистики не были доступны посторонним, файл "data/.htaccess" должен обрабатываться сервером (файл содержит команду "Deny from all"). Если у вас Nginx, используйте директиву "deny all". Для проверки доступности файлов данных запустите файл "data/test.php". Если это приведёт к ошибке 403, то файлы защищены от доступа (во всяком случае, на уровне программы). Если вы увидите сообщение "Не защищено", то потребуется настроить сервер, чтобы доступ к файлам данных был только у программы. 10 Обновления Автоматическое обновление программы в текущей версии не предусмотрено. Обновите её вручную, с официального сайта: https://okox.ru Версия вашей программы: 1.0 11 Планируемые изменения Маловероятны изменения интерфейса и функциональных возможностей программы в модусе расширения и усложнения. Кроме указанного далее, следует ожидать новое только в плоскости актуализации, оптимизации и исправления ошибок. Возможно, будет сделано: 1) фоновое (без перезагрузки страницы) обновление данных; 2) определение очерёдности срабатывания событий текущей и прошлой страниц; 3) автоматические проверка наличия новой версии и обновление программы. 12 Обратная связь Сообщения о функциональных, визуальных, лингвистических и других ошибках и уязвимостях направляйте по электронной почте: info@okox.ru - это очень важно! Частная консультация по работе программы - платная. Если вы желаете помочь проекту переводом его на другие языки или как-то иначе, пожалуйста, пишите. Спасибо за внимание. Удачного использования!