如何在没有meta http-equiv = REFRESH CONTENT = time的几秒钟内在PHP中重定向页面

时间:2012-06-22 10:32:14

标签: php redirect header refresh meta-tags

似乎不建议使用

<meta http-equiv=REFRESH CONTENT=3;url=url>

用于重定向,而是使用

header('Location: url')

但是,我想向用户显示一些消息,并允许他们在重定向之前阅读一些时间。有没有办法在没有meta的情况下做到这一点?

8 个答案:

答案 0 :(得分:36)

尝试使用“刷新”标题:

header('Refresh: 3;url=page.php');

另外,您可以查看此问题Refresh HTTP Header

答案 1 :(得分:6)

使用元刷新标记没有任何问题。

<meta http-equiv="refresh" content="5;URL='http://example.com/'" />

该标记表示等待5秒并重定向到example.com。这个标签不是问题,除非用户在IE6上并且它仍然有效,只需打破历史按钮。

使用JavaScript是一种选择,但请确保包含一个链接“如果您没有自动重定向,请点击此处”。实际上,您应该以任何方式包含该链接。

答案 2 :(得分:5)

php方式设置标头,将在5秒内将你重定向到test.php:

header( "refresh:5;url=test.php" );

在发送任何实际输出之前调用。

在javascript中:

setTimeout(function () {
   window.location.href= url; // the redirect goes here
},5000); // 5 seconds

答案 3 :(得分:4)

标题标记在页面加载时发送到浏览器,以便它可以快速将用户重定向到所需的页面,而无需渲染它甚至将其加载到历史记录中。因此,一旦页面已经加载,就无法调用重定向,因为已经处理了标题。

您可以使用以下方式执行此操作:

header( "refresh:5;url=wherever.php" );

这基本上在页面标题中设置<meta>标记,这意味着您不需要将标记写出来。

答案 4 :(得分:2)

根据你们的意思,理论上这应该适用:

网址:http://www.example.com/ticketgen/index.php?success=1&redir=1

    <?php
 $myredir = ($_GET['redir']);
    if ($myredir == 1)
    {
        header( "refresh:5;url=http://www.example.com/ticketgen/" );
    }
?>

但它什么都没做。我也在页面的顶部有它,所以它可以发送标题。

它在我刚发现的Firefox中不起作用。

答案 5 :(得分:1)

你可以用一小段javascript来完成:

<script type="text/javascript" language="JavaScript">location.href = 'otherpage.php';</script>

当然,这取决于启用JavaScript的人。

显然,要设置延迟,您可以使用类似setTimeout的内容:

<script type="text/javascript" language="JavaScript">
    setTimeout(function () {
                      location.href = 'stackoverflowhelp.php'; 
               }, 5000);
</script>

答案 6 :(得分:1)

我认为最好的方法是header("Refresh: 10;url=../index.php"); 就像我对我的工作所做的一样。

答案 7 :(得分:-1)

https://codingislove.com/redirect-pages-php/

查看上面的文章,他们清楚地解释了如何通过设置时间来重定向PHP中的页面。

在没有时间设置的情况下重定向代码: 标题(&#39;位置:URL地址&#39;);

设置三秒时间重定向代码: 标题(&#39;刷新:3;网址=网址地址&#39;);