获取当前用户查看的页面

时间:2009-10-21 19:57:13

标签: php

而不是

login.php?ref=http://mysite.com/lastpage

我能以其他方式得到之前的页面吗?试过HTTP_REFERER,但无法让它工作

Notice: Undefined index: HTTP_REFERER in C:\test\login.php on line 18

//新手

3 个答案:

答案 0 :(得分:4)

HTTP_REFERER(以及几乎所有其他$ _SERVER var)都不是获取以前页面的可靠方法,因为它们很容易被伪造。

设置会话变量可能会稍微安全一些,但如果它们来自外部网址则不会起作用。 Afaik没有一种万无一失的方法来实现这一目标。

答案 1 :(得分:1)

HTTP_REFERER并不总是设置,这就是你收到通知的原因。浏览器可以选择不发送它,或者用户可能已经将URL直接输入到他的浏览器中。您可以将该值放入session,这有其他缺点(例如,浏览器中的多个标签具有相同的引荐页面。)我认为如果不这样,网址仍然是最佳方式有一个表单,你可以附加一个隐藏的字段。

编辑顺便说一下:不要盲目使用get参数中的网址,可以由其他人再次伪造,如the answers to this other question中所述。

答案 2 :(得分:0)

使用$ _SERVER ['HTTP_REFERER'],如下所示:

  

$ REF = $ _ SERVER [ 'HTTP_REFERER']