PHP 延迟重定向回页面


PHP delay redirect back to a page

是否可以及时将用户重定向回他进入页面的页面

如果他从1.php进入页面----> 2.php我需要延迟重定向到1.php

始终重定向到他所在的页面 进入了另一页

您可以使用元标记:

<?php if (!empty($_SERVER['HTTP_REFERER'])) { ?>
    <meta http-equiv="refresh" content="2;url=<?php echo $_SERVER['HTTP_REFERER'] ?>">
<?php } ?>

否则,您可以使用 JavaScript 解决方案:

<head>
<script type="text/javascript">
setTimeout("window.location = '<?php echo $_SERVER['HTTP_REFERER'] ?>'", 2000);
</script>
</head>

PHP 不是动态的(也不是客户端的),所以你不能制作计时器。您必须使用元标记或JavaScript。请参阅此答案:使用 PHP 重定向。

如果他们通过在表单中输入数据来通过,则在隐藏字段中将 page1 地址传递回 page2。

第1页.php -> 推出表单

<form action = page2.php method=post>
<input type=hidden name=return value=page1 />
<input type = submit />
</form>

page2.php -> 处理表单,检测用户返回的位置

$next = 'default-welcome-page';
$permitted = array('page1','page3','page4');
if( isset($_POST['return'])
&& in_array($_POST['return'], $permitted) ){
$next = $_POST['return'];
}
header(Location: $next.'php');
exit;

否则,您可以构造一个 html 链接,并执行与上述相同的操作,但使用 $_GET 数组而不是 $_POST

<a href=page.php?return=page1>Go on, go on...</a>

旧线程,但也许仍然有用:

header ("Refresh:5; URL=proceed.php");

只要确保遵守规则,头球必须先做。