我一直在为此而努力。我的代码几乎与此DOES工作的其他项目完全相同。我是这样做的:
session_start();
set_up_session($username);
redirect_to('index.php');
这两个功能:
function redirect_to($location=null) {
if($location!=null) {
header("Location: {$location}");
exit;
}
}
function set_up_session($username) {
session_start();
$_SESSION['user_id']=$id;
$_SESSION['logged_in']=true;
$_SESSION['username']=$username;
}
如果我注释掉重定向并回显任何$_SESSION
var,则var读取正确。但是在重定向之后,会话结束了。
这就是下一页的内容。
<?php if (!isset($_SESSION['logged_in'])) { ?>
// do stuff <-- this is what gets shown showing session is no longer active
<?php } else { ?>
<p>Hi, <?php echo $_SESSION['username']; ?></p>
<?php } ?>
答案 0 :(得分:0)
确保您要重定向的网页在文档顶部有session_start()
if(!isset($_SESSION)){
session_start();
}
答案 1 :(得分:0)
我要做的第一步是在下一页试试这个:
<?php
if (isset($_SESSION['logged_in'])) {
echo $_SESSION['username'];
} else {
//do stuff
}
?>
我在处理会话时遇到了问题。我对这个问题的解决方法是设置一个$ _SESSION [];变量。 EX:
<?php
$Username = "Guest"; //Set your variable before you actually need it. (This is what fixed my problem)
if (isset($_SESSION['logged_in'])) {
$Username = $_SESSION['username'];
}
?>
注意:您可能想要更改if(isset($ _ SESSION ['logged_in'])),而不是检查是否设置了用户名。例如:
<?php
$User = "Guest";
if (isset($_SESSION['username'])) {
$User = $_SESSION['username'];
} else {
//do stuff
}
?>
另外,如其他用户所述,请确保您重定向到的页面具有session_start();功能在其中。否则,这将无效。