假设我在网站A中有一个链接,并在点击链接时被重定向到网站B.网站A可以是博客,文章或社交书签网站。我需要知道如何获取网站A的URL。我拥有网站B.所以我需要在网站B上编写PHP脚本,通过它我可以获得有关网站A URL的信息。您也可以使用其他编程语言向我推荐。你的回答太高兴了。
答案 0 :(得分:2)
答案是$ _SERVER ['HTTP_REFERER']
当网络浏览器从一个网站移动到另一个网站以及网站的页面之间时,它可以选择传递它来自的网址。这称为HTTP_REFERER,本文将介绍如何在PHP中使用此变量。
http referers概述
大多数Web浏览器默认传递HTTP_REFERER变量,但在许多情况下,此行为可以更改为不显示或传递其他内容。还有第三方反间谍软件等软件可以安装在用户的计算机上,这也防止了引用者信息被传递到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(像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变量用于记录等目的非常有用。但重要的是要知道它并不总是这样设置,所以如果您使用通知进行编程,那么您需要在代码中允许这样做。以上示例显示了这样做的一种方法。
答案 1 :(得分:0)
使用$_SERVER['HTTP_REFERER']
将用户代理引用到当前页面的页面地址(如果有)。这是由用户代理设置的。并非所有用户代理都会设置此功能,有些用户可以将HTTP_REFERER修改为功能。简而言之,它无法真正被信任。
答案 2 :(得分:0)
在这种情况下,在您的网站上使用$_SERVER['HTTP_REFERER']
遵循良好做法,逃避$_SERVER["HTTP _REFERER"]
。