为什么 php 执行 header 语句而不执行 echo 语句

why php executes header statement without executing the echo statement

$count = mysqli_num_rows($result);  
          
if($count == 1){  
    echo "<h1><center> Login successful </center></h1>";  
} else{  
    echo "<script>alert('login failed! invalid username or password');</script>";
    header("Location: index.php")  ;
}     

我想在登录失败时显示警告消息,如果用户按确定,那么它应该再次返回登录 page.I 尝试了上面的代码,但是,那不起作用。 浏览器移动到登录页面而不显示警告消息。 有没有其他方法可以解决这个问题?

echo 运行良好,但代码在 php 中是同步的。这就是为什么 header 使用 echo 运行,但是 header 将你重定向到 index.php 并且 echo 被看到了一段时间。

如果 SESSION 中存在消息,您可以将消息存储到 SESSION 并在 index.php 上显示:

.
.
else{
session_start();
$_SESSION['msg'] = 'Login failed! invalid username or password';
header("Location: index.php");

index.php:

session_start();
if(isset($_SESSION['msg'])){
 echo $_SESSION['msg'];
 unset($_SESSION['msg'];
}