将用户重定向到上一页

时间:2012-04-23 08:25:42

标签: php javascript redirect joomla

我想将用户重定向到他们来自的页面,但不使用javascript go.back等类似内容,因为它不会再次加载页面。

我找到了一些代码

<?php 
$ref1 = urlencode($_SERVER['HTTP_REFERER']); 
$ref2 = urlencode('http://'.$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI']); 
echo '<meta http-equiv="refresh" content="5;url=page2.php?ref1='.$ref1.'&amp;ref2='.$ref2.'">'; 
?>

我只想要一个PHP文件来获取以前的URL,确切的URL,然后将用户发回给它。我正在使用PHP,因为它会导致页面再次加载。 我使用了javascript,但它没有再次加载页面,所以请在这里帮助我。 提前谢谢。

3 个答案:

答案 0 :(得分:1)

怎么样?

<?php
header ("Location: ".$_SERVER['HTTP_REFERER']);
?>

您可以使用php直接将客户端重定向到另一个页面,而无需使用http的元刷新...

答案 1 :(得分:0)

为了不依赖引用者,你可以将你将表单POST的页面的url存储在一个隐藏的输入中,然后从处理POST请求的脚本中的$ _POST中获取它并发出重定向到该请求网址。

一个非常简单的例子:

在模板中:

<form action="<?= $yourDestinationUrl ?>" method="POST">
<!-- Here be your form elements -->
<input type="hidden" name="redirectTo" value="<?= $_SERVER['REQUEST_URI'] ?>" />
</form>

在处理POST请求的脚本中:

[your logic goes here]

if(!empty($_POST['redirectTo']) {
    header('Location: ' . $_POST['redirectTo']);
    die;
}

答案 2 :(得分:0)

我这样用过:

1 - 在上一页中,我获得了完整的url并添加了like参数,最后一个参数。

$e = $_SERVER['PHP_SELF']."?".$_SERVER['QUERY_STRING'];
href="www.nextpage.com?x=yours_parameters&e=<?php echo $e; ?>"

2 - 在实际页面中,您必须获得e值

$_SESSION["url"] = $_SERVER['REQUEST_URI'];
$link = explode("e=",$_SESSION["url"]);
$e = $link[1];

3 - 所以,var $ e将是你的后面的网址

<script>location.href='$e';</script>";