0

假设我在网站 A 中有一个链接,当它点击链接时被重定向到网站 B。网站 A 可以是博客、文章或社交书签网站。我需要知道如何获取网站 A 的 URL。我拥有网站 B。所以我需要在网站 B 上编写 PHP 脚本,通过它可以为我提供有关网站 A URL 的信息。你也可以向我推荐其他编程语言。你的回答太感激了。

4

3 回答 3

2

答案是 $_SERVER['HTTP_REFERER']

当网络浏览器从一个网站移动到另一个网站以及在网站的页面之间移动时,它可以选择传递它来自的 URL。这称为 HTTP_REFERER,这篇文章着眼于如何在 PHP 中使用这个变量。

http 引荐来源网址概述

大多数 Web 浏览器默认传递 HTTP_REFERER 变量,但在许多情况下,这种行为可以更改为不显示或传递其他内容。也可以在用户的​​计算机上安装第 3 方反间谍软件等软件,这也可以防止引荐来源信息传递到 Web 服务器。因为它也可以更改为其他内容,所以 HTTP_REFERER 不可信,但它对于确定人们来自哪里仍然很有用。出现在日志文件中

以下示例来自 Apache Web 服务器的日志文件。

第一个示例显示了从该网站主页访问此特定帖子的人的日志条目的样子。我已将日志行的 HTTP REFERER 部分加粗(您需要向右滚动才能看到它)。1 192.168.1.10 - - [16/Apr/2008:16:12:36 +1200] “GET /php-http-referer-variable/HTTP/1.1”200 2014 “http://www.electrictoolbox.com/” Mozilla/5.0(兼容;Konqueror/3.5;Linux)KHTML/3.5.8(如 Gecko)"

第二个示例显示了相同的内容,但是因为它由 a 表示 - 只有它告诉我们用户通过输入地址或使用书签等直接进入该页面,或者使用浏览器选项屏蔽 HTTP REFERER或第三方工具。1 192.168.1.10 - - [16/Apr/2008:16:12:36 +1200] “GET /php-http-referer-variable/HTTP/1.1”200 2014 “-” Mozilla/5.0(兼容;Konqueror/3.5 ; Linux) KHTML/3.5.8 (like Gecko)" 在 PHP 中使用 HTTP_REFERER

PHP 中的 HTTP REFERER 存储在 $_SERVER 超级全局变量中,可以从 PHP 代码中的任何位置引用,如下例所示,只需将其写入浏览器即可: 1 echo $_SERVER['HTTP_REFERER']

如果 HTTP_REFERER 已设置,则将显示它。如果不是,那么您将看不到任何东西。如果未设置,并且您将错误报告设置为显示通知,您将看到如下错误: 1 注意:未定义索引:第 3 行 /path/to/filename.php 中的 HTTP_REFERER

为了防止在通知开启时出现此错误(我总是在通知开启的情况下进行开发),您可以这样做: 1 if(isset($_SERVER['HTTP_REFERER'])) { 2 echo $_SERVER['HTTP_REFERER']; 3 }

另一种方式是这样的: 1 echo isset($_SERVER['HTTP_REFERER']) ?$_SERVER['HTTP_REFERER'] : '';

的使用?运算符将返回 ? 之后的第一个值 如果条件为真,则为第二个值,如果条件为假。当您想要将 HTTP_REFERER 的值分配给变量时,使用它会很有用。例如:1 $referer = isset($_SERVER['HTTP_REFERER']) ?$_SERVER['HTTP_REFERER'] : ''; 结论

使用 $_SERVER['HTTP_REFERER'] 超全局变量将 HTTP_REFERER 变量用于记录等目的可能很有用。但是,重要的是要知道它并不总是设置,因此如果您使用通知进行编程,那么您需要在代码中允许这一点。上面的示例显示了执行此操作的一种方法。

于 2012-09-26T05:59:28.283 回答
0

利用$_SERVER['HTTP_REFERER']

将用户代理引向当前页面的页面地址(如果有)。这是由用户代理设置的。不是所有的用户代理都会设置这个,有些提供修改 HTTP_REFERER 作为一个特性的能力。简而言之,它不能真正被信任。

http://php.net/manual/en/reserved.variables.server.php

于 2012-09-26T05:52:29.413 回答
0

$_SERVER['HTTP_REFERER']在这种情况下在您的网站上使用

遵循良好的做法,逃脱$_SERVER["HTTP _REFERER"]

于 2012-09-26T05:52:32.547 回答