用户使用 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");