似乎不建议使用
<meta http-equiv=REFRESH CONTENT=3;url=url>
用于重定向,但请使用
header('Location: url')
但是,我想向用户显示一些消息,并让他们在重定向之前有一些时间阅读它。有没有办法在没有元的情况下做到这一点?
尝试使用"刷新"标头:
header('Refresh: 3;url=page.php');
另外,您可以查看此问题刷新HTTP标头。
使用元刷新标记没有错。
<meta http-equiv="refresh" content="5;URL='http://example.com/'" />
该标签显示等待 5 秒并重定向到 example.com。除非用户在IE6上并且它仍然有效,否则此标记不是问题,只是破坏了历史记录按钮。
使用JavaScript是一种选择,但请确保包含一个链接,上面写着"如果您没有被自动重定向,请单击此处"。无论哪种方式,您实际上都应该包含该链接。
设置标头的 php 方法,将在 5 秒内将您重定向到 test.php:
header( "refresh:5;url=test.php" );
在发送任何实际输出之前调用。
在javascript中:
setTimeout(function () {
window.location.href= url; // the redirect goes here
},5000); // 5 seconds
标题标签在页面加载时发送到浏览器,以便它可以快速将用户重定向到所需的页面,而无需费心呈现它,甚至将其加载到历史记录中。因此,一旦页面已经加载,就无法调用重定向,因为标头已经处理过。
您可以改为通过以下方式执行此操作:
header( "refresh:5;url=wherever.php" );
这基本上在页面本身的标题中设置了<meta>
标签,这意味着您不需要写出标签。
根据你们所说,理论上这应该可以工作:
网址: 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/" );
}
?>
但它什么也没做。 我也把它放在页面的最顶部,所以它可以发送标题。
它在我刚刚发现的火狐中不起作用。
你可以用一小段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>
我认为最好的方法是header("Refresh: 10;url=../index.php");
就像我对我的工作所做的那样。
https://codingislove.com/redirect-pages-php/
查看上面的文章,他们清楚地解释了如何通过设置时间来重定向 PHP 中的页面。
在没有设置时间的情况下重定向代码:标头("位置:URL 地址");
重定向代码,设置了三秒的时间:header('refresh:3; url=URL ADDRESS');