我不是要sleep()
。我知道那个功能。
if(mysql_num_rows($result) == 1){
//DELAY TO OCCUR HERE
echo "You are a validated user.";
header('Location: usermainpage.php');
}
如果我使用睡眠功能,它只会延迟加载页面。我希望出现回声,然后发生重定向。
如果我使用睡眠功能,它只会延迟加载页面。我希望出现回声,然后发生重定向。
您可以使用良好的旧 HTTP 标头来完成此操作:
header('Refresh: 10; URL=usermainpage.php');
请记住,标头必须在任何其他输出之前发送,否则将触发“标头已发送”错误。要控制输出,您可以查看ob_*
(输出缓冲区)函数系列。
这真的很恶心,你不应该这样做。只需使用 302 重定向并跳过中间的无用页面:
header('Location: usermainpage.php', true, 302);
但是,您可以设置“Refresh”标头,它是非标准的,但非常古老,所有浏览器都可以理解。
header('Refresh: 10;URL=usermainpage.php');
10
是重定向前的延迟秒数。
但是,如果浏览器不理解此标头,则应在页面上包含指向目标页面的链接。
来自Stackoverflow和Wikipedia的更多信息。
在输出任何文本之前,必须将标头输出到浏览器。如果您首先输出文本,您将失去发送标题的机会,因为页面的正文必须始终最后输出。
如果您希望在显示一些文本后重定向浏览器,您需要使用 Javascript 或 META 重定向:
Javascript
<script type="text/javascript">
setTimeout(function() {
window.location = 'usermainpage.php';
}, 2000);
</script>
将值 2000 替换为重定向前等待的毫秒数。2000 = 2 秒,10000 = 10 秒。
元标记
<meta http-equiv="refresh" content="5; URL='usermainpage.php'">
将数字设置5
为重定向前等待的秒数。
如果您想在页面加载后执行此操作,则需要使用 javascript 或使用元刷新重定向进行重定向。