【发布时间】:2017-05-25 08:28:08
【问题描述】:
我正在创建一个 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";
}
?>
输出总是“不”。我已经在我的本地主机和远程主机上尝试过,启用了几个浏览器和 cookie。现在检查 var_dump 时,$_SESSION 显示为空。
【问题讨论】:
-
创建会话后,您是否启动了它?你确定不是不小心毁了它吗?
-
您是否在将数据加载到会话中的脚本中执行了
session_start() -
session_start();需要在顶部的每个页面上,您将以任何方式处理SESSION。所以将其添加到您的第一页 -
@AlivetoDie 这正是我所缺少的。我觉得很愚蠢,因为我花了几个小时,我自己无法弄清楚。谢谢。