Как сделать логин на сайте?

<?php
$login = $_POST["login"];
$password = $_POST["password"];
if($login == false or $password == false){
    echo("Вы не ввели логин или пароль.");
}
$mysqli = new mysqli("localhost","root","","game");
$mysqli->query ("SETNAMES 'utf8'");
$query = "SELECT * FROM users WHERE name='$login' and password='$password'";
$mysqli->close();
?>

Вот код который я написал. Что там есть? Впринципе ничего. Я только сделал две переменные логин и пароль и проверку ли их поля заполнены. Как сделать проверку ли в базе данных есть такой пользователь и ли пароль совпадает? Пробовал по разному не получалось. Я только учусь. Может вы подскажите?


Ответы (1 шт):

Автор решения: knownOut

Для решения Вашей задачи нужно просто получить данные пользователя из базы данных и сравнить их с теми, которые были отправлены в скрипт.

<?php
    $Login = $_POST["login"];
    $Password = $_POST["password"];

    # Подключаемся к базе данных
    $DB = new mysqli("127.0.0.1", "root", "", "game");
    if(!$DB) exit("Ошибка подключения к базе данных");

    # Отправляем запрос в базу данных
    if($Result = $DB->query("SELECT * FROM regs WHERE regs.login = '$Login'")) {
        # Получаем количество строк в результате запроса
        $RowsCount = mysqli_num_rows($Result);

        # Если строк больше нуля, значит пользователь существует
        if($RowsCount > 0) {
            # Получаем данные пользователя из базы и сравниваем пароли
            $DBUserData = $Result->fetch_assoc();
            if($DBUserData["password"] == $Password)
                exit("Вход завершен. Пароль введен верно");

            exit("Ошибка. Пароли не совпадают");
        }

        exit("Пользователя с таким логином не существует");
    }

    exit("Не удалось отправить запрос");
?>
→ Ссылка