Détruiser la session PHP

Détruiser la session PHP
Lorsqu'un utilisateur visite un site Web dans le navigateur, le temps passé par cet utilisateur sur ce site Web s'appelle la session pour cet utilisateur. Lorsqu'un utilisateur ferme le navigateur ou la déconnexion du site, la session expire. Les informations de session peuvent être stockées en utilisant un cookie sur l'ordinateur du client ou en utilisant le script PHP qui est stocké dans le serveur. Les informations stockées par le cookie peuvent être piratées facilement par un accès non autorisé. Ainsi, la façon de stocker les informations de session à l'aide du cookie n'est pas sécurisée. PHP a des fonctions et des variables de session intégrées pour conserver et détruire les informations de session des utilisateurs. La voie à une variable de session et à la détruire de la session de PHP a été montrée dans ce tutoriel.

Variable de session non définie

Les données de session particulières peuvent être supprimées en utilisant la fonction unset (). La fonction session_unset () est utilisée pour effacer toutes les données liées à la session d'une session particulière. PHP utilise un tableau associatif $ _Session pour conserver les données de session.

Syntaxe:

La syntaxe du session_unset () La fonction a donné ci-dessous.

void session_unset ();

Il est utilisé pour un défaut de session en cours en effaçant toutes les données liées à la session du tableau $ _SESSION. Ça ne renvoie rien.

Exemple-1: variable de session non définie

Suppression de la session en utilisant la fonction session_unset () s'est affichée dans l'exemple suivant. Créez un fichier PHP avec le script suivant Créez une session pour les utilisateurs authentifiés et vérifiez une valeur du tableau $ _SESSION après avoir détruit la session. Un formulaire est utilisé dans le script pour prendre le nom d'utilisateur et le mot de passe.

Ensuite, ces valeurs seront comparées aux valeurs spécifiques pour vérifier l'authentification. Une session sera créée en utilisant la fonction session_start () pour l'utilisateur si le nom d'utilisateur et le mot de passe sont corrects. Si l'utilisateur visitera la page Web, la session sera effacée en utilisant la fonction Session_unset () pour vérifier que la session en cours est détruite ou non.

// Vérifiez que le formulaire est soumis ou non
if (isset ($ _ post ['soumi']))

// Vérifiez que les champs de nom d'utilisateur et de mot de passe sont vides ou non
if (isset ($ _ post ['un']) && isset ($ _ post ['pw']))

$ username = $ _post ['un'];
$ mot de passe = $ _post ['pw'];
// Vérifiez l'authentification de l'utilisateur
if ($ username == 'admin' && $ mot de passe == 'Secret')

// Démarrer la session pour l'utilisateur authentifié
session_start ();
écho "";
// Vérifiez la variable de session
if (isset ($ _ session ['name']))

// Imprimez le message de bienvenue
Echo 'Bienvenue à nouveau.
';;
// non défini la session pour l'utilisateur
session_unset ();
// Vérifiez la variable de session après Undet
Echo "La valeur de session après unset:".$ _Session ['name']."
"

autre

// Définir la variable de session
$ _Session ['name'] = 'Administrator';
// Imprime la variable de session
Echo "La variable de session est définie pour".$ _Session ['name']."
"

écho "";

autre

// Imprimer le message d'erreur pour l'utilisateur non valide
Echo "Le nom d'utilisateur ou le mot de passe n'est pas défini
"



autre

?>



Exemple de session non défini



Nom d'utilisateur:



Mot de passe:









?>

Sortir:
La sortie suivante apparaîtra après avoir exécuté le script ci-dessus. L'utilisateur doit fournir un nom d'utilisateur et un mot de passe valides avant de soumettre le formulaire. Selon le script, le nom d'utilisateur valide est 'administrer'Et le mot de passe est'secret'.

La sortie suivante apparaîtra si le nom d'utilisateur correct et le mot de passe sont soumis par le formulaire et qu'une nouvelle session sera générée pour l'utilisateur.

La sortie suivante apparaîtra si l'utilisateur revit à nouveau la page. Si la session existe pour l'utilisateur, l'utilisateur recevra le message, 'Content de te revoiret la fonction session_unset () détruira la session pour cet utilisateur. Le message d'avertissement apparaîtra dans la sortie car la variable de session ne sera pas définie après avoir appelé la fonction session_unset (). Mais ce message d'avertissement peut être omis en utilisant Le report d'erreur directif.

Détruiser la session PHP

La fonction Session_Destroy () est utilisée pour détruire toutes les variables de session des visiteurs. Il détruit simplement les données de session, mais la variable PHP super-globale, $ _Session Array contient les données de session. Les valeurs de ce tableau seront supprimées si le script est terminé ou si l'utilisateur ferme la session. Le tableau de session $ peut être créé en initialisant un tableau vide.

Le cookie PhpSessid peut être conservé dans l'ordinateur de l'utilisateur sans aucune donnée après avoir détruit la session si le cookie du navigateur est activé dans l'ordinateur de l'utilisateur. Dans ce cas, lorsque l'utilisateur revisitera à nouveau la page, une nouvelle session sera générée pour l'utilisateur, même le cookie PhpSessid existe. La syntaxe de cette fonction a montré ci-dessous.

Syntaxe:

void session_destroy ();

Cette fonction n'a aucun argument et il ne renvoie rien.

Exemple-2: Détruire la session à l'aide de session_unset ()

La façon de détruire tous les types d'informations de session à l'aide de la fonction Session_unset () s'est montrée dans l'exemple suivant. Créez un fichier PHP avec le script suivant pour créer une session par défaut pour les visiteurs généraux, définissez le nom de la session et la date d'expiration à l'aide de la fonction setcookie () et imprimez le nom de la session après avoir détruit la session à l'aide de la fonction Session_unset ().

// Démarrer la session pour le visiteur
session_start ();
// Définissez le cookie de session pour le visiteur
if (session_id () != "" || isset ($ _ cookie [session_name ()]))
setcookie (session_name (), ", time () - 42000, '/');
// imprime le nom de session par défaut
Echo "Le nom de session par défaut est".session_name ()."
"
// Imprime la session Expire Date
Echo "La date d'expiration de la session est".Date ('d-m-y', heure () + 5000000)."
"
// détruire toutes les informations de session
session_destroy ();
if (session_id () == "")
Echo "La session a détruit."
?>

Sortir:

La sortie suivante apparaîtra après avoir exécuté le script ci-dessus. Ici, la session a été créée avec le temps d'expiration et détruite plus tard en utilisant la fonction session_destroy ().

Conclusion

Deux façons de détruire les séances de PHP ont été expliquées dans ce tutoriel avec des exemples. Les fonctions session_unset () et session_destroy () ont été utilisées dans ce tutoriel pour détruire toute session existante. Le développeur PHP peut utiliser l'une de ces fonctions pour détruire les sessions en PHP.