JS Проверка на баны

xf1ne

Trainee
1625382482139.png
Делаю прерку на блокировку при авторизации, и мне надо сравнить данные игрока с данными таблицы данных, но по какой-то причине но их не сравнивает, хотя в DB данные имеються. Подскажите пожалуйста, как это можно имсравить?
 

mo3g666

Junior Developer
Скриптер
Посмотреть вложение 331
Делаю прерку на блокировку при авторизации, и мне надо сравнить данные игрока с данными таблицы данных, но по какой-то причине но их не сравнивает, хотя в DB данные имеються. Подскажите пожалуйста, как это можно имсравить?

JavaScript:
DB.query(“SELECT * FROM bans WHERE ip = ?, socialclub = ? LIMIT 1”,[data.ip,data.socialclub],function(err,results) {
if (!results.length == 0) return player.call(“showAuthError”,[‘Вы заблокированы’]);
})
 

mo3g666

Junior Developer
Скриптер
Посмотреть вложение 331
Делаю прерку на блокировку при авторизации, и мне надо сравнить данные игрока с данными таблицы данных, но по какой-то причине но их не сравнивает, хотя в DB данные имеються. Подскажите пожалуйста, как это можно имсравить?
Ваш запрос делает выборку где именно такой айпи и такой socialclub одновременно, для того, что бы проверять на два разных параметра, вам необходимо делать два запроса.
 

Lev Angel

Developer
Команда форума
Скриптер
В первом запросе почему-то LIMIT 0. Такой запрос по идее никогда ничего не вернет.
Также в первом запросе неправильный синтаксис. Несколько условий проверки в WHERE нужно комбинировать не при помощи запятых, а при помощи операторов AND, OR или NOT.
 

xf1ne

Trainee
Есть еще один вопрос, мне надо вывести админа, дату и причину блокировки в CEF, какими методами это можно сделать?
 

Lev Angel

Developer
Команда форума
Скриптер
Есть еще один вопрос, мне надо вывести админа, дату и причину блокировки в CEF, какими методами это можно сделать?
Ну смотри у тебя там player.call('showAuthError', ...) который отправляется сначало на клиент, а потом выводится в ЦЕФ. Можешь сделать по аналогии, у тебя будет тот же алгоритм.
 

xf1ne

Trainee
Ну смотри у тебя там player.call('showAuthError', ...) который отправляется сначало на клиент, а потом выводится в ЦЕФ. Можешь сделать по аналогии, у тебя будет тот же алгоритм.
Нюанс в том, что передать данные из базы данных с помощью
Код:
${...}
не удается. Так оно отказывается работать.
 

Lev Angel

Developer
Команда форума
Скриптер
В res у тебя по идее массив с результатами запроса. Ты вставляешь массив в строку и отправляешь на клиент. Оно так вряд ли сработает :)
Выведи при помощи console.log содержимое res в консоль сервера и посмотри что у тебя и где.
 

xf1ne

Trainee
В res у тебя по идее массив с результатами запроса. Ты вставляешь массив в строку и отправляешь на клиент. Оно так вряд ли сработает :)
Выведи при помощи console.log содержимое res в консоль сервера и посмотри что у тебя и где.
1625502249600.png
Вот что оно выводит. и это получаеться объект в масиве? Я пробовал обратиться через
Код:
console.log(res.admin)
и оно выводит undefined
 

Lev Angel

Developer
Команда форума
Скриптер
Да, верно. Запрос возвращает массив объектов. Поскольку у тебя там только один результат, то и один объект в массиве.
В данном случае res.admin не сработает, т. к. res это массив, а объект находится в первом элементе этого массива. Т. е. правильным будет обращение res[0].admin
 
Яндекс.Метрика
Верх