К. О.
К. О.
Mexanizm (24.09.2014)
Mexanizm (24.09.2014)
Начнем с того, что SA-MP сервер - это не сайт, и загруженный из БД пароль будет хранится на серверной стороне и никак не сможет быть перехвачен кем-либо.
Если загрузить пароль и далее сравнивать его с тем, что ввел игрок - будет меньше или равно запросов к БД ибо отправлять запрос за загрузку информации придется всего лишь один раз - при совпадении паролей.
Вообще тут спорно, надо ли так делать, или нет, но громко кричать о том, что загружать пароль нельзя - неправильно.
Соглашусь.Еще я наблюдал такое, что в некоторых модах при сравнении пароля используется веденный текст и текст загруженный из бд помещенный в массив.
И это тоже делать не стоит. Опять же представим, что у вас сайт на PHP и пароль вы записываете в Cookie на винт пользователю.
Из этого места расходится много дорог. Такое как кража Cookie и прочее.
Итак, как же правильно будет сделать? Послать запрос примерно такого типа: select id form accounts where nickname = '%s' AND password = '%s',Vasya,123
А после чего, проверить количество полученных строк в результате запроса.
Но вот представь ситуацию, сервер начали перезагружать.
Когда сервер запустился, к нему начался шквал подключений (в среднем 20 в сек.), следовательно, большое кол-во запросов в БД.
Так помимо игроков, в это время ещё загружаются прочие системы, зависящие от той же БД. К примеру, Дома.
И таким образом, получается, что если загружать методом который ты предлагаешь (загрузка инфы о игроке ПОСЛЕ ввода пароля) то игрок ждет В СРЕДНЕМ 20 СЕКУНД (в первую минуту после запуска сервера)
А если загрузить всю инфу о игроке сразу при подключении (т.е. пока он вводит пароль, инфа грузится), и спавнить его сразу, после сверки его пароля и введенного в диалог, то загрузка идет менее секунды.