0

setcookieセッションでPHPを使用すると、ブラウザが開いている間はすべて正常に動作しますが、ブラウザを閉じると、$_SESSIONページから別のページに渡すことができません! 私が持っているログインページで:

$_SESSION['name'] = $_POST['name'];
$_SESSION['pass'] = $_POST['pass'];
$life=2592000;//1 month
setcookie(session_name(),session_id(),time()+$life);
header("location:administrator/");
die();

session_start();それらの上にあるすべてのページで使用しました。また、ログアウトに次のコードを使用しました。

session_start();
unset($_SESSION['name']);
unset($_SESSION['pass']);
session_destroy();
header("location:../");

重要な注意点は、ブラウザーの Cookie を確認したときです。ブラウザーを閉じる前に 2 つの Cookie があり、それらのコンテンツの値は互いにまったく同じです。1 つはセッションの終了時に期限切れになりますが、もう 1 つは 1 か月後に期限切れになります。ブラウザーを閉じて戻ります。2 つの Cookie がありますが、値が異なります。ケースの問題とセッション変数がページからページに渡されないと思います。

4

1 に答える 1

1

@Mattが言及した問題(Cookieを使用してセッションを復元または復元するには、カスタムメカニズムが必要になる場合があります)とは別に、mod_rewriteまたは実際のディレクトリを使用するとCookieパスが混乱することに注意してください。必要なときに必要な場所でCookieを使用できるようにするには、パラメーターを追加します/PHP setcookie()、$ pathパラメーター)

于 2012-08-03T15:31:40.670 に答える