Вопрос
Сколько строк вернёт база данных, если в запрос передать несуществующий логин?
Дополнительный вопрос
Какой смысл вообще городить авторизацию, если любой придурок авторизуется без всякого пароля, через SQL инъекцию?
Подробнее про вопрос секьюрности этого куска:
Если переменная подставляется напрямую в запрос, то это значит что в нее можно дописать SQL, который будет делать совсем не то, что ожидалось.
Например, если вместо имени пользователя написать что-то вроде
имя' AND LEFT(password, 1) = 'a
то тогда код напишет "Лоигн занят" если первая буква пароля - "а". Пара десятков таких запросов - и первую букву мы уже угадали. Тем же способом же достаём остальные и вот мы получили пароль любого клиента.
Чтобы этого не было, переменные
никогда не пишут в запрос напрямую. а передают отдельно.
как это делать - я уже
писал подробно, правда в ответе на другой вопрос
Здесь надо делать так
$input = json_decode(file_get_contents("php://input"), true);
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$link = mysqli_connect(*информация БД*);
$link->set_charset("utf8mb4");
$stmt = $link->prepare( "SELECT login FROM sn_users WHERE login=?");
$stmt->bind_param("s", $login);
$stmt->execute();
$result = $stmt->get_result();
$row = $result->fetch_assoc();
if ($row) {
echo "Лоигн занят";
} else {
echo "Лоигн свободен";
}