重定向到另一个页面后,PHP Session变量为空

时间:2017-05-25 08:28:08

标签: php session backend

我正在创建一个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显示为空。

1 个答案:

答案 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();