如果用户未登录,我将使用以下内容锁定位置,以便在登录成功后我可以返回此位置
$_SESSION['returnURL'] = htmlspecialchars($_SERVER['REQUEST_URI'], ENT_QUOTES);
我在标题重定向中使用此会话变量没有运气。此变量的内容目前为:/event.php?title=Test&id=16
if($sql->num_rows==1) {
if (isset($_SESSION['returnURL'])){
$_SESSION['username'] = $username;
header("location:$_SESSION['returnURL'])";
unset($_SESSION['returnURL']);
} else {
$_SESSION['username'] = $username;
header('location:home.php');
}
} else {
die(header("location:login.php?login-failed=true&reason=not_found"));
}
当我将$_SESSION['returnURL']
的内容替换为$_SESSION['returnURL']
中存储的地址时,它的效果非常好。当我使用带有标题的$_SESSION['returnURL']
变量时,有些东西会出现问题。
答案 0 :(得分:1)
这一行的问题:
header("location:$_SESSION['returnURL'])";
修复结束括号:
header("location:$_SESSION['returnURL']");
在引用的字符串中使用花括号作为数组变量:
header("location:{$_SESSION['returnURL']}");
此外:
htmlspecialchars('/event.php?title=Test&id=16', ENT_QUOTES);
// Results in: /event.php?title=Test&id=16
哪个是不同的网址。你不需要在这里转换为html实体。