0

我不知道是否有像以$_SERVER['']开头的 PHP 函数 来告诉用户他来自哪个页面,在他的当前页面上。

前任。如果我正在浏览 foo.com?id=abc 然后转到 foo.com?id=efg,我需要当前页面来告诉我我直接来自 foo.com?id=abc

我非常需要这段代码,所以任何帮助表示赞赏。

4

4 回答 4

5

它是$_SERVER['HTTP_REFERER']。但只有浏览器这样做时才会被填充。否则,您需要自己跟踪用户(即通过在会话中存储最后一页)

于 2012-09-23T10:12:03.653 回答
3

不应依赖 $_SERVER 变量来提供准确的答案。您应该使用 PHP Sessions 来跟踪它们来自哪个页面,并在每次它们进入新页面时简单地更新它。类似于以下内容:

session_start();
if(!empty($_SESSION['visited_pages'])) {
  $_SESSION['visited_pages']['prev'] = $_SESSION['visited_pages']['current'];
}else {
  $_SESSION['visited_pages']['prev'] = 'No previous page';
}
$_SESSION['visited_pages']['current'] = $_SERVER['REQUEST_URI'];

然后访问上一页,访问:$_SESSION['visited_pa​​ges']['prev']

于 2012-09-23T10:22:05.433 回答
2

是的,这不仅在 PHP 中,这是 HTTP 协议规范的一部分,使用:

$_SERVER['HTTP_REFERRER']
于 2012-09-23T10:12:46.203 回答
2

HTTP_REFERRER给出了请求文件的页面地址。例如,页面上的图像是一个单独的请求,并且此请求将 $_SERVER['HTTP_REFERRER'] 设置为页面。

我认为浏览器不允许服务器访问历史记录。可以用JavaScript来完成,虽然只能提供一个后退按钮,但不能轻易访问url。虽然它可以使用简单的 css 和 javascript 技巧通过访问计算颜色到链接来实现

于 2012-09-23T11:13:18.133 回答