2011-11-14 2 views
2

Donc, je pense avoir une idée de base, de ce que sont les cookies et les sessions. Les cookies sont stockés sur le client et les sessions sont stockées sur le serveur. Mais ce que je voudrais savoir, c'est quel est l'avantage d'utiliser une session sur un cookie? Une session est-elle simplement utilisée pour partager des données entre des pages?Avantages des sessions sur les cookies en PHP

+2

Ce sont deux pièces du même puzzle; vous utilisez le cookie pour stocker l'identifiant de la session afin de savoir quelle session utiliser. –

+0

@BrianRoach Je pense que l'OP se réfère à stocker des données dans le tableau '$ _COOKIE' ou' $ _SESSION' – Phil

+1

En fait ... maintenant je vois votre point. Il parle de stocker des données dans cookie (s) * plutôt * que dans une session. Il ne m'est pas venu à l'esprit que les gens font toujours des choses comme ça: -D –

Répondre

7

Les sessions sont une meilleure idée lorsque vous ne voulez pas que le client puisse manipuler les données. Par exemple, l'utilisation d'une variable de session pour stocker l'ID utilisateur de l'utilisateur actuel est correcte. L'utilisation d'un cookie est cependant un énorme trou de sécurité car une personne malintentionnée serait en mesure d'usurper d'autres identifiants d'utilisateur et d'accéder à d'autres comptes.

-3

Les sessions PHP sont implémentées via des cookies dans le navigateur client.

+0

Un cookie côté client est l'une des deux méthodes permettant à PHP de garder une trace des identifiants de session. L'autre est via un paramètre de requête. Les données de session ne sont * pas * stockées côté client – Phil

1

Vous utilisez le cookie pour l'identification de session. Vous ne définissez pas toutes vos informations importantes dans un cookie, car les utilisateurs peuvent modifier ces informations. Les données de votre session sont plus sécurisées.

1

Les données d'un cookie peuvent être modifiées, car les données sont stockées localement (sur le client), où les données d'une session sont stockées sur le serveur et ne peuvent pas être modifiées (par le client). Cependant, une session PHP définit un cookie sur votre navigateur, de sorte que PHP peut se référer à la clé de session sur le cookie, et vous donner la session correspondante. Cela signifie que si quelqu'un obtient votre clé de session, il peut ajouter un cookie à son navigateur, et essentiellement détourner votre session.

+0

"Cela signifie que si quelqu'un obtient votre clé de session, il peut ajouter un cookie à son navigateur, et essentiellement détourner votre session." Cependant, ceci est une circonstance inévitable d'un protocole sans état. –

2

Les sessions ne dépendent pas de l'utilisateur qui autorise un cookie. Ils fonctionnent à la place comme un jeton permettant l'accès et la transmission d'informations pendant que l'utilisateur a son navigateur ouvert. Le problème avec les sessions est que lorsque vous fermez votre navigateur, vous perdez également la session. Ainsi, si vous aviez un site nécessitant une connexion, cela ne pourrait pas être sauvegardé comme une session comme un cookie, et l'utilisateur serait obligé de se reconnecter chaque fois qu'il se rendrait.

Vous pouvez bien sûr tirer le meilleur des deux mondes! Une fois que vous savez ce que chacun fait, vous pouvez utiliser une combinaison de cookies et de sessions pour que votre site fonctionne exactement comme vous le souhaitez.

consulter: http://php.about.com/od/learnphp/qt/session_cookie.htm

+1

Si cela est copié (peut-être à partir de http://php.about.com/od/learnphp/qt/session_cookie.htm), veuillez citer vos sources. –

0

Jetez un oeil: PHP - Sessions vs Cookies

sessions servent de support d'information temporaire qui peut cacher des informations, alors que cookies servent à la fois un support d'information temporaire et à long terme. Après la différence entre les sessions et les cookies est évident, faire le bon choix pour un site web est plutôt simple. Bien que les sessions puissent sembler plus faciles à utiliser que les cookies, ne doutez jamais de la puissance et de la facilité d'utilisation des cookies.

Espérons que cela aide.

0

Utilisez les deux. N'utilisez qu'un cookie pour identifier une session. Les données de cookies sont envoyées avec chaque demande (même pour les images si elles sont sur le serveur web). Minimiser les données dans un cookie signifie moins de données envoyées sur le fil.

Stockez toutes les autres données d'application dans une session. Soyez prudent pour garder les données de session petites. Une grande quantité de données dans la session surchargera le serveur avec l'utilisation de la mémoire s'il y a beaucoup de demandes de beaucoup d'utilisateurs différents. Stockez des données volumineuses dans un objet Utilisateur de l'objet ou des objets associés liés à un utilisateur.

Espérons que cela aide ...