プロが教えるわが家の防犯対策術!

いろいろとセッションの破棄を試みているのですがうまくいきません。
最初のページで
setcookie("order",session_id());
として数ページこの情報を確認する形でページ遷移させています。
最終ページの処理の末端で
session_start();
$_SESSION = array();
if (isset($_COOKIE[session_name()])) {
  setcookie(session_name(), '', time()-42000, '/');
}
session_destroy();
としています。
ところがセッション情報が消えていないためリロードするとメールが再送信されたり完了ページが表示されたりします。
なぜでしょうか?いろいろな情報を参考にしているのですが上手くいきません。
よろしくお願いします。

A 回答 (2件)

「phpマニュアル:セッションの破棄」の参考ソースでは、以下のようになってましたよ。



// セッション変数を全て解除する
$_SESSION = array();
// その後cookie 削除、session_destroy();を実行
http://jp.php.net/manual/ja/function.session-des …

また、unset($_SESSION['variable']) のように、個別の変数削除は、unsetでよいけど
「unset($_SESSION) を使って $_SESSION を完全に unset しないでください」
とも記載されてます。

参考URL:http://jp.php.net/manual/ja/function.session-des …
    • good
    • 0

メール送信などのところがよくわからなかったのですが。



unset($_SESSION)

でセッションの中身は消せたような気がします。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!