插入数据后PHP重定向

时间:2018-10-01 04:23:34

标签: php sql

插入数据后,我在重定向到另一个页面时遇到问题。

我在localhost上工作,我试图在插入数据后重定向到另一个页面(url)。

使用以下代码,我尝试将不会重定向的google url放置在提交后停留在页面上。

任何帮助将不胜感激。

谢谢

<?php
/**
 * Template Name: Booking Template
 */
get_header();

require_once("db.php");

if(count($_POST)>0) {
$sql = "INSERT INTO bookings (reason, doctor, bookingDate, bookingTime, patientName, gender, phone, email) VALUES ('" . $_POST["reason"] . "','" . $_POST["doctor"] . "','" . $_POST["bookingDate"] . "','" . $_POST["bookingTime"] . "','" . $_POST["patientName"] . "','" . $_POST["gender"] . "','" . $_POST["phone"] . "','" . $_POST["email"] . "')";

  if(mysqli_query($link, $sql)){
    echo "Records inserted successfully.";
    header("location: http://www.google.com");	
} else{
    echo "ERROR: Could not able to execute $sql. " . mysqli_error($link);
}
}
mysqli_close($link);
?>

1 个答案:

答案 0 :(得分:2)

如果您在header()之前回显或打印某些内容,它将不会重定向。因此,您需要在echo之前删除header()。在exit()之后使用header()也非常安全。

/**
 * Template Name: Booking Template
 */
get_header();

require_once("db.php");

if(count($_POST)>0) {
$sql = "INSERT INTO bookings (reason, doctor, bookingDate, bookingTime, patientName, gender, phone, email) VALUES ('" . $_POST["reason"] . "','" . $_POST["doctor"] . "','" . $_POST["bookingDate"] . "','" . $_POST["bookingTime"] . "','" . $_POST["patientName"] . "','" . $_POST["gender"] . "','" . $_POST["phone"] . "','" . $_POST["email"] . "')";

  if(mysqli_query($link, $sql)){
    //echo "Records inserted successfully."; remove or comment this line
    header("location: http://www.google.com");
    exit(); // use exit. It's a good practice
} else{
    echo "ERROR: Could not able to execute $sql. " . mysqli_error($link);
}
}
mysqli_close($link);

如果查询正常,并且数据已正确插入但尚未重定向,则可以使用Javascript重定向。

/**
 * Template Name: Booking Template
 */
get_header();

require_once("db.php");

if(count($_POST)>0) {
$sql = "INSERT INTO bookings (reason, doctor, bookingDate, bookingTime, patientName, gender, phone, email) VALUES ('" . $_POST["reason"] . "','" . $_POST["doctor"] . "','" . $_POST["bookingDate"] . "','" . $_POST["bookingTime"] . "','" . $_POST["patientName"] . "','" . $_POST["gender"] . "','" . $_POST["phone"] . "','" . $_POST["email"] . "')";

  if(mysqli_query($link, $sql)){
    //echo "Records inserted successfully."; remove or comment this line
    header("location: http://www.google.com");
    echo "<script>window.location = 'http://www.google.com';</script>";
    exit(); // use exit. It's a good practice
} else{
    echo "ERROR: Could not able to execute $sql. " . mysqli_error($link);
}
}
mysqli_close($link);

确保get_header()函数中没有错误,并仔细检查代码中是否有任何错误。仅在需要立即解决时才使用第二种方法。