70

假设我的网站的网址是互联网上某个页面上的超链接;该页面可以是 Internet 上的任何内容 - 博客、orkut、雅虎,甚至 stackoverflow 等,并且有人点击它并访问了我的网站。那么我们能否使用 php 知道访问者访问我页面的前一个 url?

4

6 回答 6

136

使用$_SERVER['HTTP_REFERER']标题,但请记住,任何人都可以随时欺骗它,无论他们是否点击了链接。

于 2011-01-11T20:13:45.113 回答
27

$_SERVER['HTTP_REFERER']是答案

于 2011-01-11T20:14:39.867 回答
21

$_SERVER['HTTP_REFERER']会给你不完整的网址。

如果你想要http://bawse.3owl.com/jayz__magna_carta_holy_grail.php$_SERVER['HTTP_REFERER']只会给你http://bawse.3owl.com/

于 2013-07-08T23:58:13.213 回答
8

我还不能添加评论,所以我想分享一下 HTTP_REFERER 并不总是被发送。

注意:未定义索引:HTTP_REFERER

于 2017-03-29T12:39:01.103 回答
2

但是您可以为每个来自 url 的链接创建一个自己的链接。

示例:http ://example.com?auth=holasite

在本例中,您的网站是:example.com

如果有人打开该链接,它会为您提供 auth 变量的 holasite 值。

然后只需 $_GET['auth'] 你就有了变量。但是您应该有一个数据库来存储它并进行授权。

喜欢:$holasite = http://holasite.com (你也可以使用 mysql..)

只需匹配它,您就有了网址。

这种方法有点复杂,但它有效。此方法适用于推荐系统身份验证。但是站点名称在哪里,您应该写一个 id,并使用该 id。

于 2015-11-06T06:13:37.237 回答
0

基本上我们使用 $_SERVER['HTTP_REFERER'] 来获取我们网站的前一个 url,但是它给你半个 url 是浪费时间。因此,获取先前 URL 的最佳方式是 Javascript 和 Jquery。

于 2022-01-25T11:48:53.910 回答