2012-09-26 38 views
0

假设我在网站A中有一个链接,并且它在点击链接时被重定向到网站B.网站A可能是博客,文章或社会书签网站。我需要知道如何获取网站的URL A.我拥有网站B.因此,我需要在网站B上编写PHP脚本,通过它向我提供关于网站URL的信息。你也可以用其他编程语言来建议我。你的回答会太感激。如何获取有关推荐链接的信息?

+0

请参阅$ _SERVER ['HTTP_REFERER'] – Sergey

回答

0

$_SERVER['HTTP_REFERER']使用

页面的地址(如果有的话),其被称为用户代理到当前页面。这由用户代理设置。并非所有的用户代理都会设置它,有些提供了将HTTP_REFERER修改为功能的功能。总之,它不能真正被信任。

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

0

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

按照良好做法,逃避$_SERVER["HTTP _REFERER"]

2

答案是$ _ SERVER [“HTTP_REFERER”]

当一个网页浏览器移动从一个网站到另一个网站的页面之间,也可以选择向它传递来自的URL。这被称为HTTP_REFERER,这篇文章讨论了如何在PHP中使用这个变量。

HTTP参照网址的概述

大多数浏览器默认传递HTTP_REFERER变量,但在许多这种行为可以被改变为不显示,或通过别的东西来代替。还有第三方反间谍软件等软件可以安装在用户的计算机上,这也可以防止引用者信息被传递到网络服务器。因为它也可以更改为别的东西,所以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

PHP中的HTTP引用存储在$ _ SERVER超级全球,并使用HTTP_REFERER可以从任何地方在你的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变量可能很有用。然而,重要的是要知道它并不总是如此,如果您使用通知进行编程,那么您需要在代码中允许这样做。上面的例子显示了这样做的一种方式。