我在 SO 和其他网站上都读过,这$_SERVER['HTTP_REFERER']
是我们作为程序员应该始终避免的事情。阅读 PHP 手册我们会遇到以下几行:
将用户代理引向当前页面的页面地址(如果有)。这是由用户代理设置的。不是所有的用户代理都会设置这个,有些提供修改 HTTP_REFERER 作为一个特性的能力。简而言之,它不能真正被信任。
考虑到“用户代理”之类的东西,比如 Web 浏览器(Safari、Chrome、Opera、Firefox,基本上都是),手册告诉我们这个变量可能会被他们改变。这是我的第一个问题:
问题一:为什么“用户代理”要修改这个参数?网络浏览器不设置此参数的原因是什么?
这只是好奇,我不会使用$_SERVER['HTTP_REFERER']
。从我最近的声明中可以看出,如果我们确实需要这样的功能,我们需要弄清楚一些事情。我首先想到的是一个 cookie 解决方案,我们在其中执行以下操作:
setcookie('latest_page', __FILE__, 60 * 60 * 24 * 7);
然后,根据你喜欢的方式,你可以恢复你需要的东西。这是第二个也是最后一个问题:
问题2:这种方式最好吗?有什么办法可以改善吗?