Иконка ресурса

Чистый и безопасный скрипт регистрации для Lineage 2 PTS (PHP 8.4+ / MS SQL) 2

Нет прав для скачивания
Представляю вторую версию нашей легковесной веб-обвязки, созданной специально для оригинальной серверной PTS-платформы Lineage 2 High Five. Изначально проект развернут и отлажен на стеке Windows Server 2025 + IIS + PHP 8.4 + MS SQL Server 2022, но архитектура позволяет легко запускать его и в других средах.
В первой версии у нас была лишь простая статичная форма регистрации. Версия 2.0 — это уже полноценный микро-движок, переписанный с нуля на основе Single Page Application (SPA). Нам удалось полностью разделить визуальную верстку и тяжелую серверную логику, убрав всю кашу из кода.

Что изменилось по сравнению с Версией 1 (Главные отличия):
  1. Бесшовная AJAX-навигация (SPA)
    Теперь при кликах по меню («Главная» / «Регистрация») страница сайта не перезагружается целиком. JavaScript в фоне запрашивает у сервера только центральный контент и мгновенно подменяет его.
  2. Непрерывный медиа-поток (Видео + Аудио)
    Благодаря AJAX-движку, проморолик High Five на фоне и заглавная тема Call of Destiny (выставленная на комфортные 5% громкости для наушников) играют непрерывно, без заиканий, обрывов и сбросов на первый кадр при переходах по сайту.
  3. Полная модульность (Чистый корень)
    Корень сайта полностью очищен от второстепенного кода. Все изолированные процессы вынесены в отдельные микро-модули в папку /modules/. Сбоит ТОП? Падает только виджет топа, а форма регистрации и сам сайт продолжают работать. Искать ошибки стало в разы проще.
  4. Защита MSSQL от нагрузок (Сессионный кэш)
    Все тяжелые запросы к базам данных lin2db и lin2world (подсчет онлайна, выборка ТОП-10) теперь кэшируются на стороне веб-сервера в сессии пользователя на 60 секунд. Сколько бы люди ни обновляли страницу, база данных опрашивается строго раз в минуту.
  5. Каноничный ТОП-10 по уровню
    Интегрирован «резиновый» виджет ТОП-10, который вычитывает оригинальные PTS-колонки Lev и Exp таблицы user_data (с учетом регистра), автоматически отсекает ГМов (builder = 0) и выводит интернациональные имена профессий с русскими сокращениями (Хавк, ТХ, БД, Сырок).
  6. Исправление критической уязвимости паролей
    Добавлена жесткая Regex-валидация паролей на стороне PHP (/^[a-zA-Z0-9]{8,16}$/). Сайт намертво блокирует кириллицу и спецсимволы, которые ломают авторизацию в retail-клиенте игры, полностью страхуя от ошибок «Неверный пароль» при входе.
  7. Безопасность сессий
    Сессии PHP полностью изолированы от системных каталогов Windows и хранятся внутри локальной папки сайта с разграничением прав для пользователя IUSR.



Кроссплатформенность и совместимость
Скрипт написан на «ванильном» PHP без использования тяжелых сторонних фреймворков и специфических системных надстроек, что делает его максимально автономным:
  • Операционные системы (Linux / Windows): Весь код изначально спроектирован с учетом абсолютных путей и строго в нижнем регистре (top.php, config.php, bgv.php и т.д.). Это гарантирует, что при переносе на чувствительный к регистру Linux (Debian / Ubuntu) сайт заведется с пол-оборота.
  • Веб-серверы (Nginx / Apache): Логика роутинга реализована силами самого PHP внутри index.php, поэтому сайту не нужны сложные правила перезаписи ссылок. Он «из коробки» готов к работе на Nginx (в связке с PHP-FPM) или Apache. При миграции достаточно перенести MIME-типы под медиафайлы в конфиг вашего веб-сервера (или в файл .htaccess).
  • Работа с MSSQL на Linux: Если вы решите перенести веб-часть на Linux, а саму базу данных оставить на Windows-машине с PTS — достаточно установить официальный пакет драйверов Microsoft ODBC Driver for SQL Server (php-sqlsrv) на вашу Linux-систему, и сайт продолжит общаться с базой без изменения кода.



Простейший мануал по настройке и запуску (на примере IIS)
Чтобы развернуть Версию 2.0 у себя на сервере, выполните 4 простых шага:

Шаг 1. Структура файлов
Убедитесь, что файлы расположены строго по своим «полкам» в корневом каталоге вашего веб-сервера (C:\inetpub\wwwroot\):

│ index.php // Главный диспетчер и каркас сайта
│ config.php // ЕДИНЫЙ файл с доступами к вашему MS SQL Server
│ web.config // Конфигурация IIS (детальные ошибки + MIME типы)

├───modules
│ bgm.php // Модуль фоновой музыки
│ bgv.php // Модуль видео-фона
│ main.php // Контент главной страницы (описание, рейты X1)
│ register.php // Класс шифрования PTS (4 таблицы ssn, user_auth и др.) + форма
│ srvstatus.php // Логика проверки портов (2106/7777) и PTS-онлайна
│ top.php // Логика и верстка ТОП-10 по уровню

└───sessions // Папка для безопасного хранения сессий PHP



Шаг 2. Медиа-файлы
  1. Фоновое видео в формате MP4 находится в папке /modules/ под именем l2bg.mp4. (Параметры для ламповой олдскульной атмосферы: разрешение 480p, вес около 9 МБ, без звука).
  2. Главня темя игры в формате MP3 в папке /modules/ под именем main_theme.mp3 (битрейт 128 kbps).

Шаг 3. Настройка прав для папки sessions (для IIS)
Поскольку PHP работает под управлением IIS, ему нужны права на запись файлов сессий:
  1. Кликните правой кнопкой мыши по папке sessions ➡️ Свойства ➡️ вкладка Безопасность.
  2. Нажмите Изменить ➡️ Добавить ➡️ введите имя IUSR ➡️ нажмите ОК.
  3. В списке разрешений для IUSR поставьте галочки напротив Чтение и Запись. Нажмите Применить.
    (При использовании Linux/Nginx просто выдайте права на запись пользователю www-data через chown).

Шаг 4. Регистрация MIME-типов в IIS
Чтобы ваш IIS не блокировал раздачу видео и музыки, в корневом файле web.config обязательно должна быть прописана секция <staticContent>:

<staticContent>
<remove fileExtension=".mp4" />
<remove fileExtension=".mp3" />
<mimeMap fileExtension=".mp4" mimeType="video/mp4" />
<mimeMap fileExtension=".mp3" mimeType="audio/mpeg" />
</staticContent>


После этого откройте сайт в браузере (желательно через режим инкогнито для чистоты первого кэша). Музыка запустится автоматически по первому клику в любом месте экрана, видео заиграет на фоне, а регистрация начнет безопасно писать аккаунты напрямую в базу данных!


Скрипты распространяются абсолютно бесплатно. Пользуйтесь, тестируйте на своих PTS-площадках!


Назад
Сверху Снизу