我在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。
有没有办法礼貌地要求浏览器使用重定向标题发送'正确'的推荐人,或者我是否因为所有重定向都堵塞了网址?
答案 0 :(得分:2)
不,没有办法向浏览器询问任何与推荐人相关的内容。
如果我是你,我不会在任何地方重定向任何人,只能在适当的位置显示登录表单(在模板驱动的网站上非常容易),将当前位置存储在隐藏的字段中。
答案 1 :(得分:0)
您无法指定Referer
标头中发送的网址。你有三个选择。
请求参数是最合适的,因为用户可能打开了多个窗口(共享会话和cookie),您可以轻松区分它们。