#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 первая запись содержит имя ключа вместо имени пользователя, поэтому вы столкнулись с уведомлением об ошибке: Неопределенный индекс: имя пользователя