如何在基于 php 的系统中在同一页面上显示登录错误消息?

avi*_*avi 2 php mysql

我正在构建一个基于 php 的登录系统,用户需要输入用户名和密码才能登录。我的问题是“如何在同一页面上显示“无效的用户名或密码”错误消息?我尝试了很多事情,包括尝试使用查询字符串 (/?error=1);它确实通过在同一页面上显示错误消息解决了我的问题,但是所有 CSS 都刚刚从页面上消失了,我找不到修复它的方法(虽然不是因为缺乏尝试)。所以我决定尝试一种更简单的方法,但显然行不通。那么,我该如何解决呢?这是我的 PHP 代码:

<?php
session_start();
$db = mysqli_connect("localhost","root","","combination");
if(isset($_POST['login_btn'])){

    $username = mysql_real_escape_string($_POST['username']);
    $password = mysql_real_escape_string($_POST['password']);

    $password=md5($password);
    $sqlquery="SELECT * FROM registration WHERE username='$username' AND password='$password'";
    $result = mysqli_query($db,$sqlquery);


    if(mysqli_num_rows($result)==1){

        $_SESSION['message']="You are now logged in.";
        $_SESSION['username'] = $username;
        $_SESSION['password'] = $password;

        header("location:loginhome.php");
    }
    else{
        $_SESSION['message']="Incorrect Username or Password."; 
        header("location:login.php");
        echo '<h3>Invalid username or password</h3>';
    }

}
?>
Run Code Online (Sandbox Code Playgroud)

imr*_*zak 8

这是一个简单的例子来帮助你。您需要使用$_SESSION变量。

登录.php:

<?php
session_start();
?>

<!DOCTYPE html>

<html>

    <head>
        <title>Login</title>
        <link rel="stylesheet" type="text/css" href="style.css">
    </head>

    <body>
        <form action="check.php" method="POST">
            <input type="text" class="input" name="username" placeholder="username">
            <input  type="password" class="input" name="pass" placeholder="pass">
            <input class="button" type="submit" id="login" name="login" value="login">  
                <?php
                    if(isset($_SESSION["error"])){
                        $error = $_SESSION["error"];
                        echo "<span>$error</span>";
                    }
                ?>  
        </form>
    </body>
</html>

<?php
    unset($_SESSION["error"]);
?>
Run Code Online (Sandbox Code Playgroud)

检查.php:

<?php

session_start();

$username = $_POST["username"];
$error = "username/password incorrect";

if($username == "admin"){
    $_SESSION["username"] = $username;
    header("location: homepage.php"); //send user to homepage, for example.
}else{
    $_SESSION["error"] = $error;
    header("location: login.php"); //send user back to the login page.
}

?>
Run Code Online (Sandbox Code Playgroud)