重定向到另一个页面后,PHP Session变量为空 [英] PHP Session variable is empty after redirecting to another page
问题描述
我正在创建一个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屋!