0

セッションCookieを削除しようとしています。これらは私が従っているステップです

        // Find the session - I believe this is doing a resume rather than starting a fresh session thus identifying the session.
        session_start();

        // Unset all the session variables enmasse by assigning an empty array
        $_SESSION = array();

        // find the session name that has been allocated then destroy the session cookie
        if(isset($_COOKIE[session_name()])){
            setcookie(session_name(),'', time()-42000, '/');
           // set content of found session to null, with a past time, at the root
        }

        // Destroy the session 
        session_destroy();

これは間違いなく私をログアウトさせます。ただし、実際のCookieはまだ存在しており、ブラウザ(Firefox)で表示できます。

$_COOKIE[session_name()]

セッション名ではなく、暗号化されたコンテンツ文字列を返しているようです。

質問:

$ _COOKIE [session_name()]がセッション名を取得する正しい方法ではない場合、何ですか?

デフォルトにするのではなく、session_nameを設定する必要がありますか?

ある種のガベージコレクションを待っているので、セッションを見ていますか?

4

1 に答える 1

0

次のページをご覧ください。

http://php.net/manual/en/function.session-destroy.php

ユーザーをログアウトするなど、セッションを完全に強制終了するには、セッション ID も設定解除する必要があります。Cookie を使用してセッション ID を伝達する場合 (デフォルトの動作)、セッション Cookie を削除する必要があります。そのために setcookie() を使用できます。

それに基づいて、とはsession_id()対照的に使用したい場合がありますsession_name()

于 2012-11-07T18:25:37.620 に答える