0

我在 testmysql.php 中设置了一个名为 foo 的会话变量,然后我再次将脚本重定向到它们相同的脚本,在那里我打印会话 var,然后取消设置它。但是,当我重定向时,会话 var 似乎已经取消设置。 .为什么会这样,我该如何解决?

<?php 

session_start();

if(empty($_GET)) {
    $_SESSION['foo'] = 'bar';
    header("location:testmysql.php?redirect". '=' . 'bar');
}

var_dump( $_SESSION);
unset ($_SESSION['foo']);
4

2 回答 2

1

设置重定向时不会中止脚本,因此unset ($_SESSION['foo'])始终会执行:

<?php 

session_start();

if(empty($_GET)) {
    $_SESSION['foo'] = 'bar';
    header("location:testmysql.php?redirect". '=' . 'bar');
    exit; // <--- Missing
}

var_dump( $_SESSION);
unset ($_SESSION['foo']);
于 2012-04-16T08:44:19.877 回答
0

替换ifif else

if(empty($_GET)) {
    $_SESSION['foo'] = 'bar';
    header("location:testmysql.php?redirect". '=' . 'bar');
}
else
{
    var_dump( $_SESSION);
    unset ($_SESSION['foo']);
}
于 2012-04-16T08:34:21.073 回答