Maison >développement back-end >tutoriel php >Comment transmettre l'ID de session en php

Comment transmettre l'ID de session en php

伊谢尔伦
伊谢尔伦original
2017-04-27 13:35:545369parcourir

Comment transmettre l'ID de session en php

Généralement, l'ID de session unique transmis entre chaque page est utilisé, et la variable pour suivre un utilisateur. Il existe deux méthodes principales pour transmettre les identifiants de session.

La première méthode consiste à transmettre l'ID de session basé sur le cookie. Cette méthode est plus optimisée, mais elle ne peut pas être utilisée fréquemment car l'utilisateur peut bloquer le

Cookie

sur. le client. La deuxième méthode consiste à le transmettre via les paramètres d'URL et à intégrer l'ID de session directement dans l'URL.

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

Dans la mise en œuvre de Session Habituellement une méthode basée sur les cookies est utilisée et l'ID de session enregistré par le client est un cookie. Lorsque le client désactive les cookies, l'ID de session ne peut pas être enregistré dans le cookie et ne peut pas être transmis entre les pages. À ce stade, la session devient invalide. Cependant, sur la plateforme

Linux, l'état des cookies peut être automatiquement vérifié si le client le désactive, le système ajoutera automatiquement l'ID de session à l'URL et le transmettra. Cette fonctionnalité n'est pas disponible sur les systèmes Windows.

1. Transmettez l'ID de session via Cookie

Si le client n'interdit pas les cookies, utilisez la fonction session_start()

dans le script PHP. Après l'initialisation, le serveur envoie automatiquement un en-tête HTTP pour enregistrer l'ID de session dans le cookie de l'ordinateur client. La méthode de configuration est similaire à la suivante :

Le processus de définition virtuelle de l'ID de session sur le cookie

setcookie(session_name(), session_id(), 0, '/')
Le premier paramètre appelle la fonction session_name() et renvoie le nom du Session en cours comme nom d'identifiant du cookie. Vous pouvez modifier le nom de la session en cours en fournissant des paramètres lors de l'appel de la fonction session_name().

Le deuxième paramètre appelle la fonction session_id() et renvoie l'ID de session actuel comme valeur du cookie. Vous pouvez également définir l'ID de session actuel en fournissant des paramètres lors de l'appel de la fonction

. session_id()

La troisième valeur du paramètre est 0, transmise à la valeur définie par l'option

dans le fichier php.ini. La valeur par défaut est 0, ce qui signifie que l'ID de session restera dans le cookie du client jusqu'à la fermeture du navigateur. session.cookie_lifetime

Le quatrième paramètre "/" est également la valeur spécifiée via le fichier de configuration PHP, et la valeur définie par l'option s

dans le php.ini. La valeur par défaut est "/", ce qui signifie que le chemin à définir dans le cookie est valable dans l'ensemble du domaine. ession.cookie_path

2. Transmettez l'ID de session via l'URL

Si le navigateur client prend en charge les cookies, enregistrez l'ID de session en tant que cookie dans le navigateur. Cependant, si l'utilisateur désactive l'utilisation des cookies, l'ID de session en tant que cookie n'existe pas dans le navigateur, les informations sur les cookies ne sont donc pas incluses dans la demande du client. Si l'ID de session en tant que cookie ne peut pas être obtenu à partir du navigateur client lorsque la fonction session_start() est appelée, un nouvel ID de session sera créé et le statut de l'utilisateur ne pourra pas être suivi. Par conséquent, chaque fois que l'utilisateur demande un script PHP prenant en charge la session, la fonction session_start() créera une nouvelle session lors de l'ouverture de la session, perdant ainsi la possibilité de suivre le statut de l'utilisateur.

fournit un autre mécanisme de suivi de session en PHP. Si le navigateur client ne prend pas en charge les cookies, PHP peut réécrire l'URL de la demande du client et ajouter un

ID de session au milieu de l'URL. Vous pouvez ajouter manuellement un ID de session à l'URL de chaque lien hypertexte. Cette méthode nécessite beaucoup de travail et n'est généralement pas recommandée. Le code de l'exemple est le suivant :

<?php
//开启 session
session_start();
// 在 URL 后面附加参数,变量名为session_name()获取的名称,值为session_id()获取
echo &#39;<a href="test.php?&#39;.session_name().&#39;=&#39;.session_id().&#39;">演示</a>&#39;;
?>
Recommandations d'apprentissage associées :

Programmation PHP de l'entrée à la maîtrise

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