1
我想在5秒钟后重定向用户,此小代码片段在5秒后重定向。使用输出缓冲写入后,使用标题功能重定向时遇到问题
<?php
ob_start();
echo "Thank you for your input";
header("Refresh: 5; url=http://www.google.com");
ob_end_flush();
?>
但是,当我尝试将它实现到我的应用程序时,什么都不会发生。这里头功能不起作用。
<?php
$name = "";
$email = "";
$subject = "";
$comments = "";
$nameError = "";
$emailError = "";
$subjectError = "";
$timestamp = date("Y-m-d H:i:s");
$x = 5;
$userIP = $_SERVER['REMOTE_ADDR'];
function filterData($data) {
$data = mysql_real_escape_string($data);
return $data;
}
$connection = mysql_connect('----', '----', '-----');
$select_database = mysql_select_db("contact");
if ($_SERVER["REQUEST_METHOD"] == "POST") {
//handles the name
$name = filterData($_POST["name"]);
if (empty($name)) {
$nameError = "please don't leave the name field blank";
}
//handles the email
$email = filterData($_POST["email"]);
if (empty($email)) {
$emailError = "please don't leave the email field blank";
}
//handles the subject
$subject = filterData($_POST["subject"]);
if (empty($subject)) {
$subjectError = "please don't leave this field blank";
}
$comments = filterData($_POST["comments"]);
}
$insertation = "INSERT INTO contactinfo (name, email, subject, date, comments, ip)
VALUES ('$name', '$email', '$subject', '$timestamp', '$comments', '$userIP')";
$insertationQuery = mysql_query($insertation, $connection);
ob_start();
echo "Thank you for your input";
header("Refresh: 5; url=http://www.google.com");
ob_end_flush();
?>
我已经尝试在开始和结束分别放置ob_start()和ob_end_flush()。但是,这似乎仍然不起作用。
也许,如果它之前停止其没有达到重定向线。你可以试着回声一些类似'echo“的东西到达这里”;'在这行之后: '$ insertationQuery = mysql_query($ insertation,$ connection);'并检查它是否显示? –
它出现在那行之后它只是标题不重定向 – johnbumble
标题应该在输出之前出现。尝试在你的echo语句之前放置标题 – theatlasroom