session_destroy
(PHP 4, PHP 5, PHP 7)
session_destroy — Détruit une session
Description
session_destroy() détruit toutes les données associées à la session courante. Cette fonction ne détruit pas les variables globales associées à la session, de même, elle ne détruit pas le cookie de session. Pour accéder à nouveau aux variables de session, la fonction session_start() doit être appelée de nouveau.
Note: Vous n'avez pas besoin d'appeler session_destroy() depuis le programme généralement. Nettoyer le tableau $_SESSION plutôt que de détruire les données de session.
Pour détruire complètement une session, l'identifiant de la session doit également être effacé. Si un cookie est utilisé pour propager l'identifiant de session (comportement par défaut), alors le cookie de session doit être effacé. La fonction setcookie() peut être utilisée pour cela.
Quand session.use_strict_mode est activé. Vous n'avez pas besoin d'effacer le cookies d'ID de session obsolète car le module de session n'accepte pas les cookies d'ID de sessions quand il n'y a pas données associer avec ces ID de sessions et définira un nouvel cookie d'ID de session. Activer session.use_strict_mode est recommandé pour tous les sites.
La suppression immédiate d'une session peut causer des résultats innatandus. Quand il y a des requêtes simultanées, les autres connexions peuvent soudainement perdre des données de session. Par exemple des requêtes depuis JavaScript et/ou des requêtes depuis des liens URL.
Bien que le module de session actuel n'accepte pas un cookie d'ID de session vide, mais la suppression immédiate de session peut provoquer un cookie d'ID de session vide à cause d'une condition de concurrence côté client (navigateur). Ceci provoquera la création de beaucoup d'ID de session inutile par le client.
Pour éviter ceci, vous devez définir un horodatage à $_SESSION et refuser l'accès à toutes les dates ultérieures. Ou assurer vous que votre applicatio n'a pas de requêtes simultanées. Ceci s'applique aussi à session_regenerate_id().
Exemples
Exemple #1 Destruction d'une session avec $_SESSION
<?php
// Initialisation de la session.
// Si vous utilisez un autre nom
// session_name("autrenom")
session_start();
// Détruit toutes les variables de session
$_SESSION = array();
// Si vous voulez détruire complètement la session, effacez également
// le cookie de session.
// Note : cela détruira la session et pas seulement les données de session !
if (ini_get("session.use_cookies")) {
$params = session_get_cookie_params();
setcookie(session_name(), '', time() - 42000,
$params["path"], $params["domain"],
$params["secure"], $params["httponly"]
);
}
// Finalement, on détruit la session.
session_destroy();
?>
Notes
Note:
Utilisez uniquement la fonction session_unset() pour l'ancien code obsolète qui n'utilise pas les variables $_SESSION.
Voir aussi
- session.use_strict_mode
- session_reset() - Réinitialise le tableau de session avec les valeurs originales
- session_regenerate_id() - Remplace l'identifiant de session courant par un nouveau
- unset() - Détruit une variable
- setcookie() - Envoie un cookie
Version en cache
23/12/2024 12:05:11 Cette version de la page est en cache (à la date du 23/12/2024 12:05:11) afin d'accélérer le traitement. Vous pouvez activer le mode utilisateur dans le menu en haut pour afficher la dernère version de la page.Document créé le 30/01/2003, dernière modification le 26/10/2018
Source du document imprimé : https://www.gaudry.be/php-rf-session-destroy.html
L'infobrol est un site personnel dont le contenu n'engage que moi. Le texte est mis à disposition sous licence CreativeCommons(BY-NC-SA). Plus d'info sur les conditions d'utilisation et sur l'auteur.
Références
Ces références et liens indiquent des documents consultés lors de la rédaction de cette page, ou qui peuvent apporter un complément d'information, mais les auteurs de ces sources ne peuvent être tenus responsables du contenu de cette page.
L'auteur de ce site est seul responsable de la manière dont sont présentés ici les différents concepts, et des libertés qui sont prises avec les ouvrages de référence. N'oubliez pas que vous devez croiser les informations de sources multiples afin de diminuer les risques d'erreurs.