【发布时间】:2016-01-03 23:04:56
【问题描述】:
如果用户未登录,我将使用以下内容锁定位置,以便登录成功后我可以返回此位置
$_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'] 变量与我认为的标头一起使用时,出现了问题。
【问题讨论】:
-
那么您在第一行
header中有语法错误。 -
你能具体点吗...我没看到。正如我所提到的,如果我用会话中实际存储的内容替换我的变量(我正在复制和粘贴内容),它会很好地工作。不是每次都会抛出语法错误吗?
-
在
header("location:$_SESSION['returnURL'])";中,您缺少标题函数的关闭)。我没有发布答案,因为它可能只是一个错字。下面的答案也解决了您的问题。