【问题标题】:How to check if url is manually typed in php [closed]如何检查是否在php中手动输入了url [关闭]
【发布时间】:2013-08-06 01:29:49
【问题描述】:

我需要我的访问者通过导航栏访问我的网站(例如登录页面),而不是手动输入 URL。

如果他们确实输入了 URL,则会显示一条错误消息。

我应该如何检查他们是否通过链接而不是手动输入来访问。

是否可以检查请求方法,还是只对表单有效?

【问题讨论】:

  • 您可以使用$_SERVER[HTTP_REFERER];,但我怀疑它是否会变得更好。
  • 来自 PHP 手册:将用户代理指向当前页面的页面地址(如果有)。这是由用户代理设置的。不是所有的用户代理都会设置这个,有些提供修改 HTTP_REFERER 作为一个特性的能力。简而言之,它不能真正被信任。

标签: php post get


【解决方案1】:

您可以检查的一件事是推荐人:

$_SERVER['HTTP_REFERER'];

虽然这不是万无一失的,但您永远无法确定用户实际输入了它(没有办法做到这一点)。

【讨论】:

  • 我已经看到通过检查请求方法来检查这个的代码,所以我很困惑,只有通过输入 URL,它永远不会向服务器发送帖子,这与单击我创建的链接的情况相同来访者?
【解决方案2】:

您可以查看$_SERVER['HTTP_REFERER'] 的内容(拼写正确),看看是哪个页面引用了您的访问者。如果您的访问者输入了 URL,它将为空。

但是,这是由用户代理(浏览器)设置的,不能保证。你不能真的相信它。不过,我不得不问,为什么这很重要?

【讨论】:

  • 很奇怪,当我发布我的答案(相同)时,你的答案不在这里,对此感到抱歉。
  • @garrettmurray 别担心 - 我们可能几乎在同一时间发帖。
猜你喜欢
  • 2021-03-09
  • 2011-10-24
  • 1970-01-01
  • 2014-02-01
  • 2014-02-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-01-16
相关资源
最近更新 更多