Почему мой php-код не отображает эхо "Вы вошли в систему"? - PullRequest
0 голосов
/ 09 мая 2018

Я пытаюсь создать систему входа в систему с помощью php и txt-файла, но когда я попробую код, он не будет работать. Вместо этого, если эхо "вы сейчас вошли в систему", это эхо "не работает". Почему это так?

файл users.txt

david
123123
---------------
nicklas
1222
---------------
hello
wwe

PHP

<?php 
    $lines = file('users.txt');
    $data = array();
    $username = '';
    $password = '';

    if(isset($_POST['username'])) {
        $username = $_POST['username'];
        $password = $_POST['password'];

        for($i = 0; $i < count($lines); $i++) {
            if(trim($lines[$i]) === trim($username)) {
                $data[0] = $lines[$i]; //username
                $data[1] = $lines[$i+1]; //password
                break;
            }
        }
    }

    if (($data[0] === $username) && ($data[1] === $password)) {
        echo "You are logged in";
    }
    else {
        echo "dosn't work";
    }
?>

HTML

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Login</title>

    <link rel="stylesheet" type="text/css" href="style.css" />
    <link href="https://fonts.googleapis.com/css?family=Gothic+A1" rel="stylesheet">
</head>
<body>
    <div id="login">
        <h1>Login</h1>
        <p>With password and username</p>
        <br />
        <form action="" method="post">
            <input type="text" class="textfield" name="username" placeholder="Username" />
            <br />
            <br />
            <input type="text" class="textfield" name="password" placeholder="Password" />
            <br />
            <br />
            <input type="submit" id="btn" name="submit" />
        </form>
    </div>
    <p></p>
    <p></p>
</body>
</html>

Я уже знаю, как создать форму входа с помощью phpmyadmin и sql, но я хотел бы иметь возможность хранить данные в текстовом файле

1 Ответ

0 голосов
/ 09 мая 2018

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

$data[0] = trim($lines[$i]); //username
$data[1] = trim($lines[$i+1]); //password

Редактировать: я предполагаю, что это для образовательных целей, и вы не планируете иметь учетные записи в текстовом файле,Если это так, я рекомендую просматривать базы данных и хэшировать пароль с помощью PHP.

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