2010-06-21 5 views
0

qu'est-ce que la session et les cookies en php et où ils sont stockésqu'est-ce que la session et les cookies en php et où ils sont stockés

i googled. Mais je ne peux pas trouver la réponse exacte.

Veuillez clarifier

merci à l'avance

+0

Il n'y a pas de réponse exacte. Cela dépend de la configuration de votre serveur. – animuson

+0

* (référence) * [Manuel PHP sur les sessions] (http://de3.php.net/manual/fr/book.session.php) – Gordon

Répondre

2

Les cookies sont stockés dans le navigateur, pas en PHP. Vous pouvez obtenir les cookies envoyés par le navigateur en regardant $ _COOKIE ['cookiename'], mais pour autant que je sache, vous ne pouvez pas configurer de cookies comme ça - vous devez utiliser setCookie(), ou éventuellement header ('Set- biscuit: ...').

Les sessions peuvent être stockées n'importe où, mais il s'agit le plus souvent de fichiers sur le système de fichiers de votre serveur; votre php.ini (ou la fonction ini_get()) serait probablement utile pour savoir où. Essayez:

$session_file_name = ini_get('session.save_path')."/sess_".session_id(); 
0

Cookie est un petit morceau de données stockées sur le côté client (navigateur) et une session est un fichier de texte stocké sur le côté serveur, dont le nom est stocké dans le cookie.

C'est tout.

+0

stocké sur le serveur - Qu'est-ce que cela signifie. Voulez-vous dire qu'il est stocké sur db – Fero

+0

@Fero "est un fichier texte" signifie stocké comme un fichier. Savez-vous ce qu'est un fichier? –

+0

merci shrapnel. a obtenu votre point – Fero

2

Un cookie est un morceau de données, le serveur demande au client de stocker et d'envoyer des demandes conséquentes.

Un session est une donnée stockée sur le serveur et connectée à l'utilisateur via un identifiant de session. Cet identifiant de session est la plupart du temps stocké dans un cookie.

Une session peut être stockée sur le système de fichiers, probablement dans un répertoire temporaire, mais également dans une base de données.

Les cookies et les sessions ont une date d'expiration qui leur est associée, de sorte qu'ils ne dureront pas éternellement.

+0

Lorsque vous dites: «Cet identifiant de session est la plupart du temps stocké dans un cookie.» Où est-il stocké si ce n'est pas dans un cookie de navigateur? – Rao

+0

Les ID de session peuvent être passés à travers l'URL par exemple, mais cela est rarement utilisé. – Ikke

+0

Donc, son passé à travers l'URL, si un navigateur ne permet pas l'enregistrement des cookies? – Rao

2

HTTP est stateless. Cela signifie que chaque fois que vous demandez quelque chose à partir d'un serveur web, il servira la page demandée et vous oubliera immédiatement.

Imaginez un panier:

Vous ajoutez quelque chose à votre panier. Le serveur aura une sorte de stockage de données pour se souvenir que vous avez mis l'article X dans le panier, mais puisque HTTP est sans état, la prochaine fois que vous appelez le serveur, il ne se souviendra pas que vous avez mis quelque chose dans le panier. Le serveur Web peut créer un formulaire sur la page renvoyée et le remplir avec chacun des éléments que vous avez ajoutés. Maintenant, vous ajoutez un autre élément, mais aussi envoyer, quel élément vous avez déjà ajouté. Répéter. Ceci transfère effectivement l'état entier de votre interaction sur chaque demande. Mais c'est plutôt inefficace et peu sûr.

Avec Sessions enabled, le serveur Web créera un identifiant unique, le Session ID pour vous. Cela sera utilisé pour vous relier et le panier sur les demandes ultérieures. Généralement, l'ID de session est envoyé au navigateur dans un Cookie. Techniquement, cela se fait par en-têtes HTTP:

Set-Cookie: PHP_SESS=abcdefg123456 

Le navigateur lit les en-têtes et crée ou met à jour le fichier cookie dans le stockage des cookies dans le navigateur. Habituellement, les fichiers cookie ne sont rien de plus que des clés/valeurs stockées dans des fichiers texte sur votre ordinateur. Si vous voulez jeter un oeil à eux google pour "où est-ce que [nom de domaine] stocker mes cookies".

Lors de la prochaine requête sur le même serveur Web, votre navigateur enverra le cookie et le serveur Web pourra désormais associer cet ID à un magasin de données (tout ce qui est défini comme session save handler) sur le serveur, par exemple les informations de connexion , le contenu d'un panier, etc

Voir la référence au manuel PHP J'ai lié ci-dessous votre question pour plus de détails.

Questions connexes