2010-02-22 52 views

回答

8

尝试这种情况:

$_SERVER['HTTP_REFERER'] 

有关详细信息,请参阅HTTP referrer

引荐,或HTTP引用-也 由发生作为HTTP报头中的常见的拼写错误 引荐已知 字段标识,从点 视图的互联网网页或 资源,网页的地址 (通常URL,更一般的 URI或i18n更新的IRI)链接到它的 资源。 通过检查 引用者,新页面可以看到请求来自的 。

18

你可以检查在Referer HTTP Header

echo $_SERVER['HTTP_REFERER']; 


但是注意,Referer的是浏览器,这意味着发:

  • 它可以禁用(这不是强制性的,而仅仅是一个其它附加信息,浏览器可以发送)
  • 它可以伪造(即任何人都可以发送任何东西 - 甚至是一些SQL注入,XSS或注射,例如)


所以,你可以使用引荐到您的网站上提供了一个额外的功能,但你必须确保您的网站不依赖于它:即使Referer不存在,您的应用程序仍然必须工作。

+0

+1好点。 – 2010-02-22 20:25:15

+1

@Andrew:作为最终用户,我讨厌当我在网站上有什么东西不只是工作,因为引荐在我的浏览器禁用*(这有时会发生,因为我经常禁用它来测试一些东西;有时在我开发的网站中)* – 2010-02-22 20:28:03

2
echo $_SERVER['HTTP_REFERER']; 

这不是完全可靠的,可以被欺骗,但一般来说,它将填充用户单击以获取脚本的URL。

0

上面的提示是正确的,但请记住,用户可以让他/她的浏览器不发送此信息,否则他们可能会混淆此信息并发送虚假数据。

1

由于@Andrew Hare声称in his answer,获取HTTP_REFERRER服务器值(这是作为HTTP请求的一部分发送的标头)的值将告诉您网站浏览器是最后一个。

应注意什么,但问题在于,它是完全可能的,这头/服务器变量将没有任何价值,对于一些合法的原因,有些是:

  • 在URL中键入的用户在同一窗口中的网站
  • 用户在同一个窗口中打开书签
  • 用户只需打开浏览器,做的事情之一以上

所有现代单片机的e在同一事物上是真正的变体,这种情况下使用相同的浏览器窗口访问另一个站点,但没有通过点击文档中的链接来引导它们,重定向或其他操作在你之前的历史页面提示。

相关问题