我试图在用户使用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,它位于其他地方
那么这里可能出现什么问题?
答案 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");