0

foo という名前の testmysql.php にセッション変数を設定し、スクリプトを同じスクリプトにリダイレクトして、セッション変数を出力してから設定解除します..ただし、リダイレクトしたときに、セッション変数はすでに設定解除されているようです. .これはなぜですか?どうすれば解決できますか?

<?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

ifと置き換えますif 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 に答える