8791 sujets

Développement web côté serveur, CMS

Bonjour, je ne saisis pas bien les différences entre cookies et sessions, du coup j'ai des doutes quant à la solution à employer pour mon site.

Il s'agit dun site d'annonces immobilières sur lequel je souhaite ajouter la possibilité pour les utilisateurs de créer une sélection d'affaires.

Il faudrait que les utilisateurs aient la possibilité de constituer une liste d'affaires sans avoir à se loguer au préalable.
Ils auraient donc la possibilité de créer un compte depuis la page affichant leur liste pour la sauvegarder.

Quelle est la solution la plus pertinente pour un tel système?

Merci par avance pour votre aide.
Modifié par Beno (05 Dec 2007 - 11:29)
Bonjour,

La principale différence est que les données d'une sessions sont stockées côté serveur alors celles des cookies sont stockées chez le client. Il en découle que les données d'un cookies sont modifiables directement par l'utilisateur (sans limitation imposées par un script), au contraire de celles d'une session.

Il existe également quelques limitations aux cookies du fait que c'est un fichier texte chez le client qui doit être envoyé à chaque requête (taille notamment).


Pour être exacte, les sessions utilisent normalement un cookie afin de stocker un identifiant qui permet de retrouver les données sur le serveur. Il existe une autre méthode qui est d'ajouter l'identifiant à tous les liens mais celle-ci est déconseillée pour des raison de sécurité.
Salut Beno Smiley cligne ,

pour simplifier, une session crée un cookie de session (PHPSESSID) qui contient un identifiant de session (selon le paramétrage cet identifiant peut également se trouver directement dans l'URL "...&PHPSESSID=1234567890123456"). Grâce à cet identifiant une ou plusieurs variables peuvent être "stockées" sur le serveur et utilisées sur chaque page. Pour savoir quelle technique choisir entre sessions et cookies je dirais que cela dépend surtout de 2 critères : sécurité (à priori meilleure avec les sessions puisque le contenu des cookies peut facilement être lu) et "durée de vie". En effet un cookie est un fichier qui reste écrit sur l'ordi du visiteur et on peut paramétrer pour combien de temps (sauf si ce dernier décide de le supprimer Smiley langue ). Dans ton cas je dirais que c'est bien ce que tu veux faire : une fois inscrit, un cookie (contenant par exemple son login et son mot de passe hashé en md5) lui évite d'avoir à se reloguer à chaque visite...

A+ Smiley smile

Edit: Oulà ! doublement grillé Smiley hotbounce
Modifié par Heyoan (04 Dec 2007 - 12:27)
Heyoan a écrit :
Dans ton cas je dirais que c'est bien ce que tu veux faire : une fois inscrit, un cookie (contenant par exemple son login et son mot de passe hashé en md5) lui évite d'avoir à se reloguer à chaque visite...


Si je comprends bien, une fois que l'utilisateur s'est inscrit, j'utilise un cookie pour lui éviter de se reloguer, par contre, avant qu'il ne soit inscrit, quelle est la meilleure manière de garder en mémoire les affaires qu'il a sélectionnées afin de les afficher par la suite? Smiley confused
Si tu ne veux pas que l'utilisateur ait l'obligation de s'inscrire, tu n'as pas trop le choix, c'est cookies, car la session est détruite lorsqu'on ferme le navigateur ou automatiquement après un certain temps de non utilisation (par défaut dans les config de php je crois que c'est 20 minutes).
Si tu compactes judicieusement tes données dans ton cookie, tu ne devrais pas avoir de problème de taille. Sauf erreur de ma part la limite est fixée à 4 Ko par domaine.

Obliger l'utilisateur à s'inscrire te permet d'avoir une bien meilleure sécurité ... se logger sur le web étant devenue une chose courante aujourd'hui, je crois que c'est un moindre mal pour l'utilisateur par rapport aux avantages que ça rapporte et aux risques supplémentaires qu'impliquent les cookies par rapport aux sessions.
Une inscription simple et bien organisée c'est 5 minutes à tout péter.

Donc en résumé : prévois une inscription obligatoire et des sessions, et des tables SQL pour stocker les données de tes utilisateurs, tu risques moins de failles/piratages qu'avec des simple cookies.
Merci Quentin pour toutes ces précisions, je vais rendre l'inscription obligatoire , ça semble effectivement plus judicieux.