2016-06-21 29 views
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()。但是,这似乎仍然不起作用。

+0

也许,如果它之前停止其没有达到重定向线。你可以试着回声一些类似'echo“的东西到达这里”;'在这行之后: '$ insertationQuery = mysql_query($ insertation,$ connection);'并检查它是否显示? –

+0

它出现在那行之后它只是标题不重定向 – johnbumble

+0

标题应该在输出之前出现。尝试在你的echo语句之前放置标题 – theatlasroom

回答