重定向引荐标头

时间:2011-04-06 09:19:06

标签: php http http-headers

我在PHP中有一个登录脚本,我将客户端重定向到。当客户端登录时,我想将用户返回到302将其重定向到登录页面的页面。

我想保持网址尽可能干净(最好是/ login),我不想使用cookie,比如会话cookie。

我尝试依赖$_SERVER['HTTP_REFERRER'],但是我遇到一个问题,当我点击需要登录的链接时,$_SERVER['HTTP_REFERRER']设置为点击链接的页面,而不是目标页面这是发送302重定向的那个。 (FF4)

如果未设置$_SERVER['HTTP_REFERRER'](https,书签或其他),那么我会使用返回网址( / login / return / myurl )使GET网址混乱。对于所有其他情况(浏览器在重定向到/ login的请求上提供HTTP_REFERRER),我真的希望仅依靠$_SERVER['HTTP_HEADER']来生成一个干净的URL。

有没有办法礼貌地要求浏览器使用重定向标题发送'正确'的推荐人,或者我是否因为所有重定向都堵塞了网址?

2 个答案:

答案 0 :(得分:2)

不,没有办法向浏览器询问任何与推荐人相关的内容。

如果我是你,我不会在任何地方重定向任何人,只能在适当的位置显示登录表单(在模板驱动的网站上非常容易),将当前位置存储在隐藏的字段中。

答案 1 :(得分:0)

您无法指定Referer标头中发送的网址。你有三个选择。

  • 将网址存储在会话中。
  • 将网址存储在Cookie中。
  • 将URL存储在请求参数中。

请求参数是最合适的,因为用户可能打开了多个窗口(共享会话和cookie),您可以轻松区分它们。