繁体   English   中英

如何从上一页获取请求的URl

[英]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();
}

请注意,出于严格的安全原因,您不应依赖此值,但是作为“将用户跳至上一页”功能,这应该足够了! 发送重定向头后,不要忘记使用exitdie语句,否则脚本的其余部分仍将执行!

文档中有关HTTP_REFERER

页面(如果有的话)的地址,该页面将用户代理引至当前页面。 这是由用户代理设置的。 并非所有的用户代理都将设置此功能,有些用户代理提供了将HTTP_REFERER修改为功能的功能。 简而言之,它不能真正被信任。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM