PHP 标头函数重定向到不存在的页面


PHP header function redirects to a page which does not exist

用户使用 PHP 标头函数登录后,我正在尝试将我的页面重定向到另一个页面,但它不断重定向到甚至不存在的页面。让我解释更多:

我有一个名为"admin_login.php"的 php 脚本,其形式如下:

<form class="form-horizontal" action="admin_login.php" method="post">
                <div class="form-group">
                    <label class="col-md-2 control-label">Username</label>
                <div class="col-md-10">
                    <input type="text" class="form-control" id="admin_login_username" name="username" placeholder="Username">
                </div>
            </div>
            <div class="form-group">
                <label class="col-md-2 control-label">Password</label>
                <div class="col-md-10">
                    <input type="password" class="form-control" id="admin_login_password" name="password" placeholder="Password">
                </div>
            </div>
            <div class="form-group">
                <div class="col-md-offset-2 col-md-10">
                    <input type="submit" name="submit" value="Sign In" class="btn btn-default">
                </div>
            </div>
        </form>

因此,当用户单击"提交"时,将调用相同的脚本"admin_login.php",并运行所需的用户登录脚本:

<?php
error_reporting(E_ALL & ~E_NOTICE);
if( $_POST["submit"] )
{
$db_host = "localhost";
$db_user = "root";
$db_password = "";
$db_name = "global_electronics";
$connection = mysqli_connect($db_host,$db_user,$db_password,$db_name);
$username =  $_POST['username'];
$password = $_POST['password'];
$query = "SELECT * FROM admin WHERE admin_username='$username' AND admin_password='$password'";
$result = mysqli_query($connection,$query);
if( $result->num_rows > 0 )
{
    $row = mysqli_fetch_assoc( $result );
    if( $username === $row['admin_username'] && $password === $row["admin_password"] )
    {
        session_start();
        $_SESSION["admin_ID"] = $row["admin_id"];
        $_SESSION["admin_username"] = $username;
        header("Location:admin_home.php");
        exit();
    }
    else
    {
        echo "Incorrect Username or Password!";
    }
}
}
?>

如果您在上一个脚本中看到 header 函数,它应该将页面重定向到"admin_home.php"相反,它将浏览器重定向到"index.php",这在我的项目文件夹中甚至不存在。

在浏览器中加载"admin_login.php"时:

http://localhost:63342/Global%20Electronics/admin_login.php

点击提交后:

http://localhost:63342/index.php

这也显示 404 错误

代码有什么问题?我是否正确使用了标头函数?我错过了什么吗?

我还使用了标头函数,而不是标头函数:

echo "<script type='text/javascript'>window.top.location='../admin_home.php';</script>";

这也将我重定向到"索引.php"

注意:我正在使用 PhpStorm 8.0.3运行 wamp MySql 数据库的最新 MySql 工作台我的项目不在万普,而是位于其他地方

那么这里可能出了什么问题呢?

我假设您的admin_login.php与脚本位于同一文件夹中。此代码可能有问题。两个点表示以前的目录,因此在文件路径中使用一个点。

echo "<script type='text/javascript'>window.top.location='./admin_home.php';</script>";

此外,在标头重定向位置包含一个空格,以查看是否有效。

header("Location:admin_home.php");

header("Location: admin_home.php");