douhuanbai6729 2011-08-31 15:23
浏览 111
已采纳

HTTP_REFERER和位置重定向

I have been looking for a while here and can't find an answer to my specific question.

In 100's of places on my site I am redirecting to an error page via a header-location redirect.

header("Location: /error.php");

What I want to do is capture and log the http_referrer on the error.php page, but for some reason it isn't set. I have seen explanations of why it isn't set with Meta-refresh, but the location header is a 302, so it should be set right? Any thoughts?

Please note- I know the http_referrer is unreliable, and I know that I can pass the information separately. Neither of which matter in my scenario (unless I want to change all the places where the redirect is called).

  • 写回答

3条回答 默认 最新

  • dongyou6909 2011-08-31 15:33
    关注

    Well, the HTTP_REFERER is set by the browser and if the browser chooses not to set it on a 302 redirect, which is shouldn't, then you won't get it. A 302 is a temporary redirect, which means the previous page is temporarily unavailable. Why would the browser want to send information for a page that doesn't exist right now?

    Good ways to achieve this:

    • Personally, I have an Errors class that handles this type of stuff, rather than just redirecting straight from the page. This allows you to record all the information you need, even debug information, before the redirect even occurs.
    • Set a session that includes the page information and grab that information on the error page for recording.
    • You can try to set the Referer line using header, but some browsers ignore this and will not send it anyways.

    Really there is no way to fix this without modifying the code at each and every place where it's redirected that you also want to record information for.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 powerbuilder中的datawindow数据整合到新的DataWindow
  • ¥20 有人知道这种图怎么画吗?
  • ¥15 pyqt6如何引用qrc文件加载里面的的资源
  • ¥15 安卓JNI项目使用lua上的问题
  • ¥20 RL+GNN解决人员排班问题时梯度消失
  • ¥15 使用LM2596制作降压电路,一个能运行,一个不能
  • ¥60 要数控稳压电源测试数据
  • ¥15 能帮我写下这个编程吗
  • ¥15 ikuai客户端l2tp协议链接报终止15信号和无法将p.p.p6转换为我的l2tp线路
  • ¥15 phython读取excel表格报错 ^7个 SyntaxError: invalid syntax 语句报错