好的,我搜索了stackoverflow和许多其他网站,我尝试了各种解决方案,但似乎都不起作用。
我正在用PHP处理一个表单,检查遗漏的条目和错误(如果遗漏),或者添加到SQL DB(如果可以),表单本身工作得很好,处理工作正常,表单要么被抛出错误并显示,要么被添加到数据库,我希望该页面显示错误或成功,等待一小段时间,然后在出现错误时自动转发回表单,如果添加成功,则指向显示数据库内容的页面。我在这里尝试的似乎都不起作用。请帮忙:到目前为止我的代码:
//If errors present
if ($errormsg) {
echo "<div class='"box red'">$errormsg</div>";
sleep(2);
echo '<script>' . "'n";
echo 'window.location="blogmake.html?blogid=" + blogid;';
echo '</script>';
}
if ($secim == "3"){ //If all present and correct post comment to DB
if ($valname && $valemail && $valcom){
$con = mysql_connect("xxxx","User","pass");
if (!$con)
die('Could not connect: ' . mysql_error());
mysql_select_db("dbname", $con);
$fulcom = mysql_real_escape_string ($_POST['comment']);
mysql_query("INSERT INTO tabname(blogid, date, email, name, comment) VALUES ('$blogid', CURRENT_TIMESTAMP(),'$valemail','$valname','$fulcom')") or die('Error: ' . mysql_error());
mysql_close($con);
echo "<div class='"box green'">Your comment has been submitted</div>";
sleep(2);
echo '<script>' . "'n";
echo 'window.location="blogread.php?blogid=" + blogid;';
echo '</script>';
}
}
?>
</div>
您可能应该使用HTML元标记:
<meta http-equiv="refresh" content="2;URL='http://yoursite.com/blogread.php?blogid=<?= $blogid ?>'" />
或JavaScript的setTimeout函数:
setTimeout(function(){
window.location="blogread.php?blogid=<?= $blogid ?>";
}, 2000);
元标签有两个重要参数:2
是重定向发生后的秒数;并且CCD_ 2是它应该重定向到的url。
在这种情况下,SetTimeout有两个参数,第一个是将要执行的函数(整个function
部分);另一个是以毫秒为单位的延迟时间,在该延迟时间之后将执行该功能(数字2000
)。
注意,我在这两种情况下都使用了<?= $blogid ?>
——这只是一个简短的代码:<?php echo $blogid; ?>
。当然,您可以随心所欲地使用它,例如使用echo
来回显整个代码,就像您刚才所做的那样。
您需要:
<meta http-equiv="refresh" content="3;url=http://www.google.com/" />
更改3的秒数,并通过网页更改url=,即:
echo '<meta http-equiv="refresh" content="2;url=blogread.php?blogid='.blogid.'" />';