1

我不是要sleep()。我知道那个功能。

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

//DELAY TO OCCUR HERE
echo "You are a validated user.";
    header('Location: usermainpage.php');
    }

如果我使用睡眠功能,它只会延迟加载页面。我希望出现回声,然后发生重定向。

4

4 回答 4

1

如果我使用睡眠功能,它只会延迟加载页面。我希望出现回声,然后发生重定向。

您可以使用良好的旧 HTTP 标头来完成此操作:

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

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

于 2013-04-16T17:46:52.093 回答
1

这真的很恶心,你不应该这样做。只需使用 302 重定向并跳过中间的无用页面:

header('Location: usermainpage.php', true, 302);

但是,您可以设置“Refresh”标头,它是非标准的,但非常古老,所有浏览器都可以理解。

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

10是重定向前的延迟秒数。

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

来自StackoverflowWikipedia的更多信息。

于 2013-04-16T17:54:44.340 回答
1

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

如果您希望在显示一些文本后重定向浏览器,您需要使用 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为重定向前等待的秒数。

于 2013-04-16T17:53:19.877 回答
0

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

于 2013-04-16T17:49:12.083 回答