Php 为什么此语句在if语句之前运行?
这是我的代码:Php 为什么此语句在if语句之前运行?,php,mysqli,Php,Mysqli,这是我的代码: if(isset($_POST['name']) && isset($_POST['email']) && isset($_POST['username']) && isset($_POST['pass']) && isset($_POST['repeat-pass'])){ $fullname = mysqli_real_escape_string($con, $_POST['name']); $emai
if(isset($_POST['name']) && isset($_POST['email']) && isset($_POST['username']) && isset($_POST['pass']) && isset($_POST['repeat-pass'])){
$fullname = mysqli_real_escape_string($con, $_POST['name']);
$email = mysqli_real_escape_string($con, $_POST['email']);
$username = mysqli_real_escape_string($con, $_POST['username']);
$password_post = $_POST['pass'];
$confirmpassword_post = $_POST['repeat-pass'];
$password = mysqli_real_escape_string($con, hash('sha3-512' , "$password_post"));
$confirmpassword = mysqli_real_escape_string($con, hash('sha3-512' , "$confirmpassword_post"));
if($password != $confirmpassword){
header("Location: index.php?failed=2");
}
$result = mysqli_query($con, "SELECT * FROM `users` WHERE `username` = '$username'") or die(mysqli_error($con));
if(mysqli_num_rows($result) > 0){
header("Location: index.php?failed=1");
}
$result = mysqli_query($con, "SELECT * FROM `users` WHERE `email` = '$email'") or die(mysqli_error($con));
if(mysqli_num_rows($result) > 0){
header("Location: index.php?failed=3");
}
$ip = mysqli_real_escape_string($con, $_SERVER['REMOTE_ADDR']);
$date = date('Y-m-d');
mysqli_query($con, "INSERT INTO `users` (`full_name`, `email`, `username`, `password`, `date`, `ip`) VALUES ('$fullname', '$email', '$username', '$password', '$date', '$ip')") or die(mysqli_error($con));
header("Location: index.php?success=1");
}
我的问题是,当两个密码不相等时,fi语句应该将用户发送到index.php?failed=2。
它不起作用,它将首先运行mysqli_查询(Insert),并将用户重定向到index.php?success=1。
但是为什么当if语句位于另一个语句之前时,它会在成功重定向之后运行呢?仅仅发送位置头是行不通的,因为PHP将继续执行脚本
您需要添加一个
die()每次头调用后,都要执行code>,以确保PHP停止对其余代码的求值。只发送位置头是不起作用的,因为PHP将继续执行脚本
您需要添加一个die()
在每次头调用之后
以确保PHP停止评估其余代码。您应该退出代码>就在标题之后
位置:它不会自行停止,它不应该停止。所以代码计算到最后。你应该退出代码>就在标题之后
位置:它不会自行停止,它不应该停止。所以代码计算到最后。哦,哇,我知道我又学到了一些东西。非常感谢你哇,我知道我又学到了一些东西。多谢各位