Maison  >  Article  >  développement back-end  >  Comment supprimer et détruire une session en php

Comment supprimer et détruire une session en php

PHPz
PHPzoriginal
2017-04-26 14:32:2119368parcourir

Méthodes pour supprimer et détruire une session en PHP : Après avoir utilisé une variable de session, vous pouvez la supprimer ; lorsque vous complétez une réponse, vous pouvez également la détruire. Si l'utilisateur souhaite quitter le système Web, vous en avez besoin. à Il fournit une fonction de déconnexion pour tout détruire sur le serveur.

Comment supprimer et détruire une session en php

Il existe trois manières principales de supprimer une session : supprimer une seule session, supprimer plusieurs sessions et mettre fin à la session en cours. Ce qui suit est un simple résumé de chacune. des trois méthodes présentées.

(1)Supprimer une seule session

Supprimer une seule session signifie supprimer les variables d'une seule session. La même chose que le fonctionnement du tableau, se déconnecter directement. un élément du tableau $_SESSION Can.

Par exemple : variable $_SESSION['user'], vous pouvez utiliser la fonction unset(), le code est le suivant :

unset( $_SESSION['user']);

Remarque : lors de l'utilisation de la fonction unset() fonction, faites attention à $ Les éléments du tableau _SESSION ne peuvent pas être omis, c'est-à-dire que l'ensemble du tableau ne peut pas être désenregistré en même temps. Cela désactivera la fonction de la session entière. Par exemple, la fonction unset($_SESSION) le fera. détruisez la variable globale $_SESSION, et il n'y a aucun moyen d'y répondre, et l'utilisateur ne peut pas enregistrer à nouveau la variable $_SESSION.

Si vous souhaitez supprimer plusieurs ou toutes les conversations, vous pouvez utiliser les deux méthodes suivantes.

(2)Supprimer plusieurs sessions

Si vous souhaitez supprimer toutes les variables enregistrées par un utilisateur dans la session, c'est-à-dire supprimer plusieurs sessions et vous déconnecter à once Toutes les variables de session peuvent être implémentées en attribuant un tableau vide à $_SESSION Le code est le suivant :

$_SESSION = array();

(3) Terminer la session en cours

. Si la session entière est terminée, vous devez d'abord vous déconnecter de toutes les variables de session, puis utiliser la fonction session_destroy() pour effacer et mettre fin à la session en cours, effacer toutes les ressources de la session et détruire complètement la session. Le code est le suivant :

session_destroy();

Par rapport à la fonction session_start() (créer un fichier Session), la fonction session_destroy() permet de fermer l'opération de la Session (supprimer le fichier Session). Si elle réussit, elle renvoie). TRUE S'il ne parvient pas à détruire les données de session, il renvoie FALSE. Cependant, cette fonction ne libérera pas les variables liées à la session en cours et ne supprimera pas non plus l'ID de session enregistré dans le cookie client.

La session par défaut de PHP est basée sur le cookie. L'ID de session est stocké dans le cookie du client par le serveur. Par conséquent, lorsque vous vous déconnectez de la session, vous devez également effacer l'ID de session enregistré dans le cookie, et cela nécessite l'utilisation de la fonction setcookie() pour terminer. Dans Cookie, le nom d'identification du cookie qui enregistre l'ID de session est le nom de la session. Ce nom est la valeur spécifiée par l'attribut session.name dans php.ini. Dans un script php, le nom de la Session peut être obtenu via la fonction session_name(). Supprimez l'ID de session enregistré dans le cookie client.

L'explication précédente peut résumer que le processus de suppression et de déconnexion de Session nécessite plusieurs étapes. Ce qui suit fournira le code complet à travers un exemple. Après avoir exécuté le script, la session peut être fermée et toutes les ressources liées à cette session seront détruites.

Le code pour détruire complètement la session est le suivant :

<?php
  //开启 Session
  session_start();
  // 删除所有 Session 变量
  $_SESSION = array();
  //判断 cookie 中是否保存 Session ID
   if(isset($_COOKIE[session_name()])){
     setcookie(session_name(),&#39;&#39;,time()-3600, &#39;/&#39;);
  }
  //彻底销毁 Session
  session_destroy();
?>

Remarque : lors de l'utilisation de $_SESSION = array() pour effacer le tableau $_SESSION, cet utilisateur également être répertorié côté serveur. Le contenu du fichier de session correspondant est effacé. Lors de l'utilisation de la fonction session_destroy(), le fichier Session correspondant à cet utilisateur côté serveur est supprimé.

Recommandations de sujets connexes : session php (y compris des photos, des vidéos, des cas)

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn