我如何延迟使用PHP?

我如何延迟使用PHP?,php,delay,Php,Delay,我不是要求睡眠()。我知道这个功能 if(mysql_num_rows($result) == 1){ //DELAY TO OCCUR HERE echo "You are a validated user."; header('Location: usermainpage.php'); } 如果我使用sleep函数,它只会延迟加载页面。我希望出现回显,然后发生重定向 如果我使用sleep函数,它只会延迟加载页面。我希望出现回显,然后发生重定向 您可以使用好的旧HTTP头来

我不是要求睡眠()。我知道这个功能

if(mysql_num_rows($result) == 1){

//DELAY TO OCCUR HERE
echo "You are a validated user.";
    header('Location: usermainpage.php');
    }
如果我使用sleep函数,它只会延迟加载页面。我希望出现回显,然后发生重定向

如果我使用sleep函数,它只会延迟加载页面。我希望出现回显,然后发生重定向

您可以使用好的旧HTTP头来完成以下任务:

header('Refresh: 10; URL=usermainpage.php');

请记住,头必须在任何其他输出之前发送,否则将触发“头已发送”错误。要控制输出,您可以查看
ob.*
(输出缓冲区)函数系列。

如果要在页面加载后执行重定向,则需要使用javascript或元刷新重定向。

在输出任何文本之前,必须将标题输出到浏览器。如果您先输出文本,您就失去了发送标题的机会,因为页面正文必须始终最后输出

如果希望在显示某些文本后重定向浏览器,则需要使用Javascript或元重定向:

Javascript


setTimeout(函数(){
window.location='usermainpage.php';
}, 2000);
将值2000替换为重新定向之前要等待的毫秒数。2000=2秒,10000=10秒

元标记



将数字
5
设置为重新定向前等待的秒数。

这真是太糟糕了,你不应该这样做。只需使用302重定向并跳过中间无用的页面:

header('Location: usermainpage.php', true, 302);
但是,您可以设置“刷新”标题,这是非标准的,但非常旧,所有浏览器都能理解

header('Refresh: 10;URL=usermainpage.php');
10
是重定向前的延迟(以秒为单位)

但是,如果浏览器不理解此标题,则应在页面上包含指向目标页面的链接


来自和的更多信息。

这不是重定向的工作方式。如果您希望首先呈现页面,那么重定向应该发生在客户端,可能是使用JavaScript;php必须加载页面,如果在php中延迟加载,则会延迟加载页面。如果你想页面加载,但在打印信息延迟屏幕和重定向,然后考虑使用PHP给信息,然后JS打印和重定向,请不要这样做。只需发出重定向并继续。
header('Location: usermainpage.php', true, 302);
header('Refresh: 10;URL=usermainpage.php');