2011-06-05 42 views
0

可能重复:
php/html - http_referer发现引荐当前页/脚本

我想找到这页/脚本get请求当前页面/脚本。

例如

我在页面 “的index.php”

我点击链接,带我到 “about.php”

现在,在 “about.php” ,我需要找到引用,即 “的index.php”

我需要的解决方案,即在任何操作系统/平台(Windows,Linux和Mac OS X的)工作

谢谢

+0

请确保此问题在发布之前尚未得到解答(实际上是许多次)。 :) – netcoder 2011-06-05 03:17:05

回答

1

不要相信$_SERVER['HTTP_REFERER']:这是一个坏的解决方案,因为它是不可靠的,由用户代理设置,可以修改,而不是总是设置或设置不正确。

尝试在每次页面加载结束时将当前页面设置为$_SESSION项目,并将其引用为您的“最后一个url”。只要最后一个网址位于您的网站内,它就会工作,否则$_SERVER['HTTP_REFERER']可能是您唯一的方法。

然而,请勿信任它,不管你做什么,不要在网站内重定向到它,或者你可能会发现自己在一个无限重定向循环。

+0

我不明白你为什么过分强调不信任引荐者的URL。当然可以由用户代理修改,但是谁在乎。这不像是一个很大的安全问题。此外,重定向到referer实际上是一个可能的事情。当然,你可能会发现自己处于一个无限的重定向循环中,但是这又意味着引用URL实际上是废话。在某些情况下,你可能是对的,但是这不是一个关键问题,它会在很短的时间内结束世界或者破坏数据,所以我仍然不明白为什么它会是一个很大的问题。 – netcoder 2011-06-05 03:26:00

+0

@netcoder:它肯定是一个很大的安全问题,因为它可以包含任何***(或什么都不)。它应该像任何其他用户输入一样进行消毒,而不是可信的。是的,重定向到引用者当然是可能的,但不是推荐的东西。 – 2011-06-05 03:28:49

+0

什么?用户**在那个页面上是**(或者被贩运到看起来像他在上面)。无论如何将他重定向到该页面有什么不安?如果你想插入一个SQL数据库中的引用者,你一定要清理它,但是你仍然会清理输入。关于引荐者URL没有什么特别的。 – netcoder 2011-06-05 03:31:16

0

您可以使用:

$_SERVER['HTTP_REFERER']