PHP标头功能重定向到不存在的页面

时间:2015-06-13 08:18:12

标签: php redirect

我试图在用户使用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!";
    }

}
}
?>

如果您在上一个脚本中看到标题功能,它应该将页面重定向到“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>";

也将我重定向到“index.php”

注意: 我正在使用PhpStorm 8.0.3 最新的MySql Workbench运行wamp MySql数据库 我的项目不在Wamp,它位于其他地方

那么这里可能出现什么问题?

1 个答案:

答案 0 :(得分:1)

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

function addNewProduct(e) {
    if(e.keyCode == 13) {
            var toAdd = $('input[name=newProduct]').val();
            $('#productList').append('<li class="product"> <input     type="checkbox" class="doneProduct"/>'+toAdd+'<div class="remove"></div><li/>');
            $('#newProduct').val('');
            e.preventDefault();
        };
};

function deleteProduct() {
    $(this).parent().remove();
};

$(function() {
    $("#newProduct").on('keypress', addNewProduct);
    $(".remove").live('click', deleteProduct);
}) ;

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

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

header("Location:admin_home.php");