session_status () : utilisé pour détecter l'état de la session en cours. Il renvoie l'une des trois constantes suivantes:
Php_session_disabled : La fonction de session a été désactivée.
Php_session_none : la session n'a pas commencé.
Php_session_active : la session a commencé.
session_id () : utilisé pour obtenir ou définir l'ID de la session en cours. Cet ID est la marque d'identification unique de la session entre le client et le serveur, et est généralement présente sous la forme d'un cookie.
Dans certaines applications complexes, plusieurs appels vers session_start () peuvent entraîner une erreur "En-têtes déjà envoyée". Afin d'éviter le début répété des sessions, il est recommandé d'utiliser Session_Status () pour déterminer l'état actuel:
<code> if (session_status () === php_session_none) {session_start (); } </code>Cette méthode garantit que la session est lancée avant son ouverture, empêchant les erreurs inutiles.
Après avoir commencé la session, vous pouvez obtenir l'identité unique de la session en cours via Session_ID () . Ce logo est utile lors du débogage, de la journalisation ou du suivi manuellement du comportement des utilisateurs.
<code> echo 'L'ID de session actuel est:'. session_id (); </code>Le suivi du comportement des utilisateurs peut être réalisé en enregistrant session_id () dans le journal ou la base de données, par exemple:
<code> file_put_contents ('/ var / log / php_session.log', session_id (). "-". Date ('ymd h: i: s'). "\ n", file_append); </code>Dans certains scénarios, nous pouvons vouloir spécifier manuellement l'ID de session, par exemple pour le partage de session de système croisé. À ce stade, vous pouvez utiliser session_id () pour le définir avant d'appeler session_start () :
<code> if (isset ($ _ get ['sid'])) {session_id ($ _ get ['sid']); } session_start (); </code>Par exemple, vous pouvez utiliser le lien suivant pour transporter l'ID de session:
<code> <a href = "https://gitbox.net/app.php?sid=customSession123"> Cliquez pour entrer </a> </code>Remarque: La définition manuelle de l'ID de session peut poser des risques de sécurité (tels que le détournement de session). Lorsque vous l'utilisez, vous devez vous assurer que les paramètres proviennent de manière fiable ou les utiliser en combinaison avec le mécanisme de jeton et HTTPS.
Avant de traiter une demande utilisateur, vous pouvez vérifier si la session a été créée. Sinon, l'utilisateur peut être invité à se connecter ou à réinitialiser l'état.
<code> if (session_status ()! == php_session_active || session_id () === '') {echo 'La session n'a pas été initialisée ou a expiré. ';; } else {echo 'actuel ID de session:'. session_id (); } </code>Cette approche est particulièrement importante dans les grands systèmes, en particulier lorsqu'il est nécessaire de s'assurer que l'identité de l'utilisateur a été identifiée par la session avant certaines opérations.