Страница входа в PHP с использованием JSON для хранения сведений о пользователе

#php #json

Вопрос:

Как бы я заставил эту простую форму входа в PHP работать? В настоящее время, когда я вхожу в систему с правильными данными, я получаю предупреждение о том, что я предоставил «недействительные учетные данные», хотя у меня есть. Кроме того, после того, как я отклоняю предупреждение о недопустимых кредитах, внезапно я получаю: «Обратите внимание: Неопределенный индекс: имя пользователя в C:xampphtdocsClassIA3login.php на линии 18»

Пожалуйста, помогите мне исправить, спасибо.

 <html>
      <head>
        <title>Lonely Bris</title>
      </head>
      <?php
    session_start();
    session_unset();
    $output = file_get_contents("users.json");
    $decode = json_decode($output, true);
    
    if(isset($_POST['login'])) {
      $username = $_REQUEST['username'];
      $password = sha1($_REQUEST['password']);
    
      for($i = 0; $i < count($decode); $i  ) {
        if($decode[$i]['username'] == $username amp;amp; $decode[$i]['password'] == $password) {
          echo "<script>alert('Login successful!')</script>";
          $_SESSION['username'] = $username;
          header("location url=Events.php");
        
        }
        else {  
              echo "<script>alert('Invalid creds!')</script>";
        }
      }
    
    }
    
    ?>
      <body>
    
        <h3>Login</h3>
    
        <form action="" method="post">
    
          <p>Username: <input type="text" name="username" placeholder="Enter Username"></p>
          <p>Password: <input type="password" name="password" placeholder="Enter Password"></p>
          <p><input type="submit" name="login" value="Login"></p>
    
        </form>
      </body>
    </html>
 

Файл JSON (users.json)

     [
        {
            "name": "Hello",
            "password": "40bd001563085fc35165329ea1ff5c5ecbdbbeef"
            "account_type": "local"

        },
        {
            "username": "Hello2",
            "password": "40bd001563085fc35165329ea1ff5c5ecbdbbeef"
            "account_type": "local"
        },
        {
            "username": "Sup",
            "password": "40bd001563085fc35165329ea1ff5c5ecbdbbeef",
            "account_type": "traveler"
        },
        {
            "username": "Pony",
            "password": "40bd001563085fc35165329ea1ff5c5ecbdbbeef",
            "account_type": "local"
        }
    ]
 

Ответ №1:

в вашем файле users.json первая запись содержит имя ключа вместо имени пользователя, поэтому вы столкнулись с уведомлением об ошибке: Неопределенный индекс: имя пользователя