PHP不会重定向
因此,我无法找出我的PHP是什么问题导致了这个问题。正如您将从代码中看到的,我让它基于if语句进行了回显。如果细节与查询相同,那么它将回显Test2。但是为什么它不重定向呢?我想不出怎么了PHP不会重定向,php,mysql,Php,Mysql,因此,我无法找出我的PHP是什么问题导致了这个问题。正如您将从代码中看到的,我让它基于if语句进行了回显。如果细节与查询相同,那么它将回显Test2。但是为什么它不重定向呢?我想不出怎么了 <?php include "../inc/db.php"; include "../inc/functions.php"; $tip = ""; if(isset($_POST["submit"])) { $username = $_POST["username"]; $pass
<?php
include "../inc/db.php";
include "../inc/functions.php";
$tip = "";
if(isset($_POST["submit"])) {
$username = $_POST["username"];
$password = $_POST["password"];
$username = mysqli_real_escape_string($connection, $username);
$password = mysqli_real_escape_string($connection, $password);
$query = "SELECT * FROM users WHERE username = '{$username}' ";
$select_user_query = mysqli_query($connection, $query);
if(!$select_user_query) {
die("Query failed. Reason: " . mysqli_error($connection));
}
while($row = mysqli_fetch_array($select_user_query)) {
$db_user_id = $row['id'];
$db_username = $row['username'];
$db_password = $row['password'];
}
if($username !== $db_username && $password !== $db_password ) {
header("Location index.php");
$tip = "Incorrect details!";
echo "Test1";
} elseif ($username == $db_username && $password == $db_password) {
header("Location ");
echo "Test2";
} else {
header("Location index.php");
echo "Test3";
}
}
?>
提交正确详细信息的结果:
并证明dashboard.php确实存在
如果我输入了mysql数据库中不存在的内容,则会得到以下结果:
但是我在while循环中定义了变量
header("Location dashboard.php");
分号不见了
header("Location: dashboard.php");
我很愚蠢…尝试添加
exit()代码>在重定向之后。另外,如果你无论如何都要离开页面,为什么要在重定向后回显某些内容?另外,对于第三个图像(第二个问题?),您的第一个if应该是or|
,而不是and&
,这是因为当没有结果时,没有可以迭代的行,因此$db_用户名和$db_密码不会被声明。您在标题上的位置
后缺少冒号。你应该对密码进行哈希运算。我正在使用echo解决我的问题。由于它与Test2相呼应,这意味着$username/$password与$db_username/$db_password相同。@chris85我简直不敢相信我会那么愚蠢,我花了20分钟的时间试图弄明白。谢谢不要忘记在while语句之外声明用户名和密码变量,以避免在mysql中没有与查询匹配的数据时出现声明错误。这并不能解释您包含的错误消息。那无关紧要吗?您可能可以删除该问题,因为它看起来更像是一个打字错误,而不是一个编程问题。