PHP - pourquoi je ne peux pas me débarrasser de ce cookie d'identification de session?

Je suis en train de résoudre une fonction de déconnexion pour une application web. Lorsque vous êtes connecté, l'application a plusieurs cookies de son domaine. Voici l'actuelle procédure de fermeture de session:

  • Vous cliquez sur un lien, qui vous envoie vers une page de déconnexion
  • La page de déconnexion exécute une fonction qui s'appelle session_destroy() et aussi boucle par tous les cookies pour le domaine et définit leur date d'expiration dans le passé (voir code ci-dessous)
  • La page de déconnexion puis redirige vers une page de connexion, qui est directement HTML.

À la fin de ce processus, tous les autres témoins ne sont pas définis, mais la PHPSESSID cookie est toujours là, a la même valeur, et est toujours à expiration à la fin de la session.

Ce qui me manque ici?

Voici la fonction de déconnexion je l'ai mentionné ci-dessus:

function log_out_current_user() {

        //Destroy the session
        if (isset($_SESSION)) {
            session_destroy();
        }

        //Expire all of the user's cookies for this domain:
        //give them a blank value and set them to expire
        //in the past
        if (isset($_SERVER['HTTP_COOKIE'])) {
            $cookies = explode(';', $_SERVER['HTTP_COOKIE']);
            foreach($cookies as $cookie) {
                $parts = explode('=', $cookie);
                $name = trim($parts[0]);
                setcookie($name, '', time()-1000);
                setcookie($name, '', time()-1000, '/');
            }
            //Explicitly unset this cookie - shouldn't be redundant,
            //but it doesn't hurt to try
            setcookie('PHPSESSID', '', time()-1000);
        }

    }

source d'informationauteur Nathan Long