如何在PHP页面上执行“返回”链接?

时间:2011-01-31 14:00:52

标签: php

如何链接到使用PHP访问的上一页?

7 个答案:

答案 0 :(得分:12)

有几种方法可以做到这一点:

1)使用浏览器历史记录 - 此选项依赖于在浏览器中启用JavaScript:

<a href='javascript:history.back(1);'>Back</a>

2)使用Referer HTTP header,它通常包含引用当前请求的URL:

$link = $_SERVER['HTTP_REFERER'];

3)使用一些跟踪传递页面的服务器端机制,并相应地填充“后退”链接中的“href”属性。这通常可用于向导;在其他情况下,开销可能过高。此外,当用户在多个浏览器选项卡中打开网站时,您应该仔细处理情况。

<强>更新

4)根据页面关系层次构建特定的“后退”链接。有关详细信息,请参阅Matti Virkkunen的答案。实际上,它是导航具有“分层”关系的页面的最有效方式(“列表视图&gt;元素视图”,“部分&gt;子部分”,“对象视图&gt;嵌套对象视图”等)。

答案 1 :(得分:3)

您很少希望根据浏览器历史记录,引用标头或会话获得您的反向链接。这就是浏览器的后退按钮的用途。

当用户来自外部您的网站(例如,来自搜索引擎)时,返回链接最有用,并且他们希望获得页面中的“一个返回”页面层次结构。这可以是前一页,树中的上层,等等。显然,当用户来自您的网站之外时,浏览器历史记录或引用标题黑客攻击不起作用。建立正确的反向链接的唯一方法是了解您的页面层次结构并为代码中的每个视图生成正确的链接。

答案 2 :(得分:1)

以下是一个关于如何实现它的小例子:

if(isset($_SERVER['HTTP_REFERER'])) {
    echo "<a href=".$_SERVER['HTTP_REFERER'].">Go back</a>";
}

答案 3 :(得分:0)

您可以猜测用户来自哪里的唯一方法是,当他们请求您的PHP页面时,他们是否向您发送了Referrer标头。该标头的内容存储在$_SERVER['HTTP_REFERRER']变量中。

所以,你可以像这样写

<a href="<?=$_SERVER['HTTP_REFERRER']?>">Back to whence you came</a>

不知道这与SQL有什么关系

答案 4 :(得分:0)

你甚至不需要PHP。

<a href="javascript://" onclick="history.back();">Back</a>

答案 5 :(得分:0)

使用history.back()$_SERVER['HTTP_referer']不是最好的方法。 问题是用户从直接链接,谷歌(或其他搜索引擎),其他网站或类似流量进入您的网站。然后,这些解决方案将用户返回到您网站之外的上一页。

答案 6 :(得分:-1)

使用$ _SERVER ['HTTP_REFERER']

$page_referrer=$_SERVER['HTTP_REFERER'];

使用$ page_referrer作为上一页的链接!警告:不要在主页上执行此操作!