У меня проблема с кодом, который я пытаюсь изменить. Игнорируйте вопиющие проблемы безопасности в коде, я не использую базу данных в этом упражнении.
В принципе, мне нужно отобразить неверное сообщение об ошибке, если пользователь вводит неверный пользователь/пароль. Я не могу понять, как это сделать. У меня есть это, поэтому он перенаправляется обратно на страницу входа, но я не могу получить сообщения, которые появятся на этой странице.
Код выглядит следующим образом:
Форма на login.php
<form action="login2.php" method="post">
<p>Username: <input type="text" name="username" /></p>
<p>Password: <input type="password" name="password" /></p>
<p><input type="submit" value="Login" name ="sub" /> </p>
</form>
PHP на login2.php
<?php
session_start();
// Checks the input from login.php
if(isset($_POST['sub'])){
$username = $_POST['username']; $password = $_POST['password'];
if($username === 'test' && $password === 'pass'){
$_SESSION['userid'] = true; header("Location: index.php"); die();
}
else
if($username !== 'admin' or $password !== 'password')$userError = 'Invalid credentials';
{
echo "Wrong username or password";
$_SESSION["loginerror"] = 1;
header("Location:login.php");
}
}
// Allows ANY input to trigger access to the main site
?>
Я рассмотрел решения по этому вопросу, но они, похоже, не работают: неправильное имя пользователя/пароль и перенаправление
Просто добавьте текстовое поле вверху формы:
<p <?php if ($_SESSION["loginerror"] == 1 ){echo 'style="display: none;";} ?> > Invalid user/login</p>
Parse error: syntax error, unexpected '>' in /path/to/file.php on line 1