我正在创建一个PHP
会话,用户名和所有内容,但是当我使用标题(foo.php
)重定向时,$_SESSION
变量显示为空,即使重定向前它显示正确用var_dump检查时填写。
首先我创建会话:
$_SESSION['loggedin'] = true;
$_SESSION['username'] = $username;
$_SESSION['start'] = time();
$_SESSION['expire'] = $_SESSION['start'] + (5 * 60);
echo "Bienvenido! " . $_SESSION['username'];
header('location:login-success.php');
exit();
在下一页上,我在页面顶部开始会话,上面没有HTML,没有任何内容:
<?php
session_start();
if(!isset($_SESSION['username'])){
echo "nope";
}
?>
输出总是“不”。我尝试过我的localhost和远程主机上的几个浏览器,启用了cookie。现在用var_dump检查时$ _SESSION显示为空。
答案 0 :(得分:1)
session_start();
(创建,更新,删除)的每个页面上都需要 SESSION
。
因此,请将其添加到您的第一页,如下所示: -
<?php
session_start();
$_SESSION['loggedin'] = true;
$_SESSION['username'] = $username;
$_SESSION['start'] = time();
$_SESSION['expire'] = $_SESSION['start'] + (5 * 60);
echo "Bienvenido! " . $_SESSION['username'];
header('location:login-success.php');
exit();