而不是
login.php?ref=http://mysite.com/lastpage
我能以其他方式得到之前的页面吗?试过HTTP_REFERER,但无法让它工作
Notice: Undefined index: HTTP_REFERER in C:\test\login.php on line 18
//新手
答案 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']