AJAX регистрация для всех дополнений [ТЕОРИЯ/ВОПРОС]

Savage

Залетный
Пользователь
Регистрация
19.06.2020
Сообщения
16
Реакции
14
Баллы
3
Возраст
28
Местоположение
USA
Всем привет, пока забросил лендинги конкретно под каждое дополнение, а решил сделать сайт с регистрацией на всевозможные дополнения. Есть ли тут кодеры?
Давайте поговорим о теории, как я понимаю для выборки дополнения нужно использовать тег <select> на HTML.
И вот дальше вопрос, как перебирать версии дополнений на PHP? Через switch case? А что касается оптимизации? Вообще же у разных дополнений разная структура, верно? Получается нужно сделать модели для коннекта которые будут работать по отдельности и лишь при выборке каждого для того чтобы не было много лишних запросов, правильно? Что касается валидации, раз мы делаем на AJAX, то помимо бэкенда я думаю нужно проводить валидацию инпутов при клике сразу, не required тег, а именно JS. Правильно ли я понимаю или нет?
 

Robisho

Залетный
Команда форума
Администратор
Регистрация
25.07.2019
Сообщения
31
Реакции
21
Баллы
8
Возраст
36
Местоположение
Moscow
Дошли руки до этого поста у меня. Привет.

Короче вопрос ты поднял хороший. Я давно над ним работаю. Большой путь пройден, ряд решений освоен. Некоторые работают, некоторые себя не оправдали.

Верно подметил основной ключевой фактор, - структура баз разных дополнений РАЗНАЯ и универсального шаблона под все не существует. Однако, это не означает, что его не может быть в принципе. Достаточно написать ряд шаблонов под каждое ядро однажды, что бы затем использовать подходящий при выборе дополнения / эмулятора в будущем.

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

Перебирать ты их можешь как угодно. Вариантов много:
а) топорно пройтись по массиву констант (for), заранее забитых в конфиге и в верстке (селекты/js)
07-08-2020 15-08-06.png
б) создать в ДБ свою таблицу с реалмами и указанием типа ядра и неймами баз, перебирая (while/foreach) которые, принимать решение о выборе шаблона сценария на уровне конструкции switch case / else if

Селект или таблица или дивы в строку, значения не имеют. Все зависит от твоей фантазии в плане верстки статики.
warcraft.life использует слайдер, который запрашивает инфу по ajax от php сценария, передавая (GET) нужные параметры (переменные), который подгружает константы (данные баз) из конфига. Этот php сценарий, получая значения и обращаясь к конфигу принимает решение об используемом шаблоне сценария запроса и обработки данных (функции, если хотите) в зависимости от структуры/архитектуры выбранной MySQL. Шаблоны заранее прописаны.

Все это ☝ я шаманил на коленке, за 12 часов. По хорошему этот вариант
б) создать в ДБ таблицу с реалмами
более предпочтительный. Что бы добавляя новый сервер в веб-обвязку тупо делать инсерт одной строчки в список реалмов DB и веб-интерфейс дальше уже делал все сам. Обращался к одной (твоей) таблице с серверами
Что-то вроде:
serversDb:
Код:
id | server | version | bnet | reg_hash | realm_name | characters_name | world_name
1 | mangos | 335 | 0 | 1 | warcraft_classic_realmd | name | name
2 | trynity | 83 | 1 | 3 | warcraft_tbc_realmd | name | name
3 | cmangos | 42 | 0 | 1 | warcraft_cataclysm_realmd | name | name
, получал данные о том, с чем имеет дело, какие названия баз (реалм/чарактерс),
07-08-2020 16-49-25.png
какое ядро, как сгенерирован пассворд (на каждом ядре метод генерации соли свой, а на некоторых, более поздних дополнениях, вообще двойная авторизация через bnet), на каком эмуляторе и какое дополнение. Понимал, что это и использовал нужный шаблон (php сценарий) при переборе в цикле.

Ну и конечно надо думать о нагрузке на мускуль и php в частности (мускуль-то хрен с ним, он живучий, а php норм жрет ресурсы на циклы). Не стоит выводить полную стату всех серверов на один лист html. Ну или выводить с таймаутом или с кешем.

Относительно валидации, - она зачем нужна, если твои селекты неизменны? Ну, в смысле не инпуты? Что в них проверять на валидность? Выбрал и выбрал. Другой вопрос, что бы тебе в ajax не запихнули инъекцию или эксплойт. Закрывай использование бек-энд сценариев в обход верстки, напрямую. Что бы кликером / скриптом (зависит от компетенции) не вешали php. Ставь таймауты в js/php. Проверяй и обрабатывай GET переменные на символы и всякое говно.

Красивая картинка (дизайн) не главное. Куда важнее сделать работающий, универсальный шаблон (бэк-энд). Картинку нарисовать и натянуть потом не проблема. Все это не быстрая и кропотливая шляпа, которую я постепенно довожу до ума на примере живого проекта. Жаль свободного времени не так много на это творчество. Так бы уже что-то дельное выкатил.
 
Последнее редактирование:

WinWoolF

Верховный Вождь
Команда форума
Администратор
Регистрация
13.10.2013
Сообщения
5 078
Реакции
389
Баллы
83
Возраст
37
Местоположение
San Jose, CA 95127
Вот это вот развернутый ответ!!! Я даже немного подофигел увидев 👍
 

Robisho

Залетный
Команда форума
Администратор
Регистрация
25.07.2019
Сообщения
31
Реакции
21
Баллы
8
Возраст
36
Местоположение
Moscow
Сам в шоке...🤦‍♂️
 

Savage

Залетный
Пользователь
Регистрация
19.06.2020
Сообщения
16
Реакции
14
Баллы
3
Возраст
28
Местоположение
USA
Спасибо большое за пост, буду курить так сказать всё это
 
Верх Низ