重定向到另一个页面后,PHP Session变量为空 [英] PHP Session variable is empty after redirecting to another page

查看:158
本文介绍了重定向到另一个页面后,PHP Session变量为空的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在创建一个PHP会话,用户名和所有内容,但是当我使用标头(foo.php)重定向时,即使在使用var_dump检查时重定向之前它似乎已正确填充,$_SESSION变量也显示为空.

I'm creating a PHP session, username and all, but when I redirect with header(foo.php), the $_SESSION variable appears empty, even though before redirecting it appears properly filled when checking with 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,什么也没有:

On the next page I start session on top of the page, no HTML above, no nothing:

<?php
    session_start();
    if(!isset($_SESSION['username'])){
        echo "nope";
    }
?>

输出始终为"nope".我已经在本地主机和远程主机上尝试过,启用了多个浏览器和cookie.立即检查var_dump时,$ _ SESSION显示为空.

The output is always "nope". I've tried on my localhost and on a remote host, several browsers, cookies are enabled. $_SESSION appears empty when checking with var_dump now.

推荐答案

session_start();在您打算以任何方式(创建,更新,删除)处理SESSION的每个页面的顶部都需要.

session_start(); needed on each page on top where you are going to deal with SESSION in any way (create,update,delete).

因此,将其添加到您的第一页,如下所示:-

So add it in your first page like below:-

<?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();

这篇关于重定向到另一个页面后,PHP Session变量为空的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆