J'ai l'erreur suivante en voulant supprimer une session "Trying to destroy uninitialized session"
quelqu'un pourrait m'aider svp !!!!! j'ai mit la commande session_destroy dans le bouton disconnect
Alors je suppose que tu comprends un peu l'anglais, alors si j'essaye de traduire sa donne: "Vous essayez de détruire une variable session non initialisée".
Donc tu dois d'abord initialiser ta session, tu ne peux donc pas détruire une session qui n'existe pas...
Je te propose de te renseigner ici: http://www.php-astux.info/sessions-php.php
Moi aussi j'ai ce message avec session_destroy(), et voici mon texte deconnexion.php :
<?php
session_start();
session_unset();
session_write_close();
session_destroy();
header ("location:index.php");
?>
Voilà les messages d'erreur qui m'arrivent :
Warning: session_destroy() [function.session-destroy]: Trying to destroy uninitialized session in .../deconnexion.php on line 5
Warning: Cannot modify header information - headers already sent by (output started at .../deconnexion.php:5) in .../deconnexion.php on line 6
Je ne comprends pas que la déconnexion fonctionne sans problème en local (EasyPHP 2.0 avec Windows Vista), et que ces messages apparaissent lorsque les pages sont disponibles "en vrai" chez Free (FileZilla).
Au secours !
Vous n’avez pas trouvé la réponse que vous recherchez ?
Je ne comprends pas que la déconnexion fonctionne sans problème en local Es-tu sûr qu'elle marche vraiment en local ? Tu utilises EasyPHP, je ne serais pas étonné qu'il masque l'affichage des warnings. As-tu testé la valeur retournée par session_destroy(); pour affirmer qu'il fonctionne sans problème ?
Bonjour,
Ce problème peut survenir dans plusieurs cas :
- oubli de commencer sa page par un "session_start();"
- session déjà supprimée, et tentative de la supprimer une seconde fois sur la même page (c'est une erreur qui arrive par inadvertance)
PS : ce n'est pas Free, bien que ce répertoire doive être créé dès que l'on veut travailler avec des sessions chez eux (mais c'est un autre message d'erreur)
la fonction session_write_close clôture l'écriture du fichier session.
De ce fait, la session est considéré comme clôturé malgré le fait qu'elle sera disponible sur d'autres pages.
Tu dois donc retirer cette fonction pour détruire ta session.