PHP延迟重定向回页面

时间:2011-05-23 17:40:08

标签: php html

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

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

  

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

4 个答案:

答案 0 :(得分:11)

您可以使用元标记:

<?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>

答案 1 :(得分:3)

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

答案 2 :(得分:1)

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

page1.php - &gt;提出表格

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

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

$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>

答案 3 :(得分:0)

旧线程,但也许有用:

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

只要确保遵守规则,标题必须先出现。