Перезагрузите экран входа с сообщением об ошибке после ввода неверных учетных данных

0

У меня проблема с кодом, который я пытаюсь изменить. Игнорируйте вопиющие проблемы безопасности в коде, я не использую базу данных в этом упражнении.

В принципе, мне нужно отобразить неверное сообщение об ошибке, если пользователь вводит неверный пользователь/пароль. Я не могу понять, как это сделать. У меня есть это, поэтому он перенаправляется обратно на страницу входа, но я не могу получить сообщения, которые появятся на этой странице.

Код выглядит следующим образом:

Форма на 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
?>

Я рассмотрел решения по этому вопросу, но они, похоже, не работают: неправильное имя пользователя/пароль и перенаправление

Теги:

1 ответ

0

Просто добавьте текстовое поле вверху формы:

<p <?php if ($_SESSION["loginerror"] == 1 ){echo 'style="display: none;";} ?> > Invalid user/login</p>
  • 0
    Вы проверяли это? Parse error: syntax error, unexpected '>' in /path/to/file.php on line 1
  • 0
    попробуйте еще раз .. забыл закрыть код PHP.
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню