[英]How to get the requested URl from previous page
我的网站上确实有一个登录页面,在每个页面中都有一个PHP代码,它将检查cookie,如果用户具有特定的cookie,它将停留在该页面上,如果没有,它将重定向到该登录页面。 在登录页面上,我确实有一个按钮,当用户单击该按钮时,将创建cookie。
当用户单击按钮时,页面应返回到之前的上一页。 我的代码是
if(isset($_COOKIE['username'])){
$_COOKIE['username'];
header('location: http://example.com/main');
}
else{
//
}
无论如何,有没有找到上一页链接或原始请求的URL?
是的,您可以使用$_SERVER
超全局变量中的HTTP_REFERER
值:
if(isset($_COOKIE['username'])) {
$_COOKIE['username']; // <-- what is this for? What are you doing with it?
header('location: http://example.com/main');
die();
}
else{
header(
'Location: ' .
!empty($_SERVER['HTTP_REFERER']) ?
$_SERVER['HTTP_REFERER'] :
'http://example.com/access_denied' // In case HTTP_REFERER is blank, fallback to this
);
die();
}
请注意,出于严格的安全原因,您不应依赖此值,但是作为“将用户跳至上一页”功能,这应该足够了! 发送重定向头后,不要忘记使用exit
或die
语句,否则脚本的其余部分仍将执行!
文档中有关HTTP_REFERER
:
页面(如果有的话)的地址,该页面将用户代理引至当前页面。 这是由用户代理设置的。 并非所有的用户代理都将设置此功能,有些用户代理提供了将HTTP_REFERER修改为功能的功能。 简而言之,它不能真正被信任。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.