为什么我的PHP代码没有回应“你现在登录了”?

时间:2018-05-09 15:48:13

标签: php html css forms login

我尝试使用php和txt文件创建一个登录系统但是当我尝试代码时它将无法正常工作。相反,如果回显“你现在已经登录”它回应“dos not working”。为什么会这样?

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创建登录表单,但我希望能够将数据存储在txt文件中

1 个答案:

答案 0 :(得分:1)

您需要修剪用户名和密码的多余空格。

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

编辑:我假设这是出于教育目的而你没有计划在文本文件中拥有帐户。如果是这样,我建议使用PHP查看数据库和散列密码。