好的我已经搜索了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>
答案 0 :(得分:0)
您应该使用HTML meta tag:
<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
是重定向发生之后的秒数;并且URL=...
是它应该重定向的网址。
在这种情况下,SetTimeout有两个参数,第一个是将要执行的函数(整个function
部分);另一个是执行该函数的延迟时间(以毫秒为单位)(数字2000
)。
请注意,我在两种情况下都使用了<?= $blogid ?>
- 这只是一个简短的代码:<?php echo $blogid; ?>
。当然,您可以随意使用它,例如使用echo
来回显整个代码,就像您一样。
答案 1 :(得分:-1)
你需要:
<meta http-equiv="refresh" content="3;url=http://www.google.com/" />
您的网址更改 3 ,网页更改网址= ,即:
echo '<meta http-equiv="refresh" content="2;url=blogread.php?blogid='.blogid.'" />';