Система входа продолжает говорить, что я не могу войти - PullRequest
0 голосов
/ 25 июня 2019

Я следую руководству (https://www.youtube.com/watch?v=a3Wxi-ZvUng), теперь я закончил с этой частью системы входа в систему, но теперь она не работает, я сделал все, как делает парень из учебника, и я смотрелэто три раза позже, чтобы убедиться, что мой код был таким же, как у него, и он есть. У меня он работает на локальном сервере и сделал двух пользователей в базе данных.Я уже просил решение в разделе комментариев, но видео было три года назад, и пока нет ответа.

function getLogin($conn) {
    if (isset($_POST['loginSubmit'])) {
        $uid = $_POST['uid'];
        $pwd = $_POST['pwd'];

        $sql = "SELECT * FROM user WHERE uid='$uid' AND pwd='$pwd'";
        $result = $conn->query($sql);
        if(mysqli_num_rows($result) > 0) {  
            if($row = $result->fetch_assoc()) { 
                $_SESSION['id'] = $row['id'];
                header("Location: index.php?loginsuccess");
                exit();
            }
        }
        else {
            header("Location: include.php?loginfailed");
            exit();
        }   
    }
}

function userLogout() {
    if (isset($_POST['logoutSubmit'])) {
        session_start();
        session_destroy();
        header("Location: include.php");
        exit();
    }   
}

Просмотр

<?php
    echo "<form method='POST' action='".getLogin($conn)."'>
        <input type='text' name='iud'>
        <input type='password' name='pwd'>
        <button type='submit' name='loginSubmit'>Login</button>
    </form>";
    echo "<form method='POST' action='".userLogout()."'>
        <button type='submit' name='logoutSubmit'>Logout</button>
    </form>";

    if (isset($_SESSION['id'])) {
        echo "You are logged in!";
    } else {
        echo "You are not logged in!";
    }

?>

1 Ответ

0 голосов
/ 25 июня 2019

Попробуйте это:

<?php
if (isset($_POST['logoutSubmit'])) {
    session_start();
    session_destroy();
    header("Location: include.php");
    exit();
}   
 if (isset($_POST['loginSubmit'])) {
    $uid = $_POST['uid'];
    $pwd = $_POST['pwd'];

    $sql = "SELECT * FROM user WHERE uid='$uid' AND pwd='$pwd'";
    $result = $conn->query($sql);
    if(mysqli_num_rows($result) > 0) {  
        if($row = $result->fetch_assoc()) { 
            $_SESSION['id'] = $row['id'];
            header("Location: index.php?loginsuccess");
            exit();
        }
    }
    else {
        header("Location: include.php?loginfailed");
        exit();
    }   
} ?>

<form method='POST' action="#">
    <input type='text' name='iud'>
    <input type='password' name='pwd'>
    <button type='submit' name='loginSubmit'>Login</button>
    <button type='submit' name='logoutSubmit'>Logout</button>
</form>

Имейте в виду, что здесь есть уязвимости в SQL-инъекциях и пароли в виде простого текста, поэтому не стоит размещать их в Интернете.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...