插入数据后,我在重定向到另一个页面时遇到问题。
我在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);
?>
答案 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()
函数中没有错误,并仔细检查代码中是否有任何错误。仅在需要立即解决时才使用第二种方法。