|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||
|
Nouveau Membre du Club
![]() Étudiant Inscription : juin 2004 Messages : 78 ![]() |
Bonjour.
Je viens faire appel a vous pour un problème de session. Mon but est, comme souvent, d'avoir une coche "Toujours connecter" qui alors permet un auto login meme quand l'utilisateur a fermer son navigateur. Le seul moyen est donc les cookies? Enfin je suis parti dans cet optique et j'ai fais le code suivant: Pour se logguer: Code :
Pour se délogguer: Code :
Sinon quand je ferme le navigateur et que je le ré ouvre, meme si j'ai coché Toujours connecter ca ne fonctionne pas j'ai fais mon petit algo mais aparement c'est pas trop ca en pratique J'ai pas testé l'expiration du cookie pour le déloggue automatique (30min) mais je doute que ca fonctionne Bref je viens faire appel a votre aide car la j'ai quelques difficultés pour comprendre le fonctionnement du couple sessions+cookies! Merci de votre aide. Cordialement, DD. |
||||
|
|
00
|
|
|
#2 |
|
Inscrit
Inscription : octobre 2006 Messages : 637 ![]() |
L'enregistrement de cookie avec rememberme doit fonctionner 90 jours, je vous propose de vider vos cookies a la main et de re-essayer.
En revanche, htmlentities() n'est pas le meilleur moyen de securiser du contenu provenant du client, bien que cela soit correct si le serveur n'envoie pas d'UTF-7 ou autre charset exotique, pour cela il vaut mieux utiliser mysql_real_escape_string(). A part ca, nommer la fonction query_mysql n'est pas tres interressante, il faudrait probablement l'appeler simplement db_query, imaginez que vous souhaitez pouvoir migrer tranquillement votre script de mysql a mysqli ou vice-versa (sans parler des autres moteurs de bases de donnees). Enfin, c'est une mauvaise idee de trimballer le mot de passe dans toutes les requetes HTTP, meme/particulierement en md5. Mieux vaut d'au-moins utiliser crypt, au mieux un identifiant aleatoire. Bon courage.
__________________
Q: Dois-je haïr et cogner sur Microsoft ? R: Non, vous n'êtes pas obligé. Non pas que Microsoft n'est pas écoeurant, mais il y avait une culture hacker bien avant Microsoft et il y en aura une bien après que Microsoft aura été de l'histoire ancienne. Toute énergie dépensée à haïr Microsoft serait mieux employée par vos compétences et votre passion. Écrivez du bon code, cela brisera suffisamment Microsoft sans polluer votre karma. Comment devenir un hacker ? par Eric Steven Raymond |
|
|
00
|
|
|
#3 |
|
Nouveau Membre du Club
![]() Étudiant Inscription : juin 2004 Messages : 78 ![]() |
Il y avait effectivement un problème de cookies ça a l'air de fonctionner maintenant
Pour le problème de la déconnexion j'ai mis un header location apres la destruction de session et de lexpiration des cookies, peut etre pas très propre mais ca n'a pas l'air de géner Pour ta remarque sur htmlentities(), je suis curieux et toujours ouvert aux critiques, j'ai donc suivi ta remarque et utilisé cette autre fonction pour les variables utilisés dans des requêtes. Mais est-ce la peine aussi pour les variables qui sont récupérées en POST ou GET pour être affichées? ou htmlentities() suffit? Pour le nom de la fonction je ne vois pas trop pourquoi un nom plutôt qu'un autre, mais si il y a un standard, enfin une convention universelle pourquoi pas Enfin, j'ai suivi ton conseil, et j'utilise crypt pour les cookies,enfin pas du blowfish mon hébergeur n'a pas le module apparemment mais celui du dessous (CRYPT_MD5) donc jai choisi de faire crypt(md5()...), bon choix ou pas? Voila j'ai modifié mon code et tout fonctionne sous firefox et IE7, je testerais sous d'autres navigateurs plus tard pour être sur Merci encore pour tes conseils même s'ils ne répondaient pas a ma question car je ne demande qu'a m'améliorer Cordialement, DD. |
|
|
00
|
|
|
#4 |
|
Inscrit
Inscription : octobre 2006 Messages : 637 ![]() |
Pour ta remarque sur htmlentities(), je suis curieux et toujours ouvert aux critiques, j'ai donc suivi ta remarque et utilisé cette autre fonction pour les variables utilisés dans des requêtes. Mais est-ce la peine aussi pour les variables qui sont récupérées en POST ou GET pour être affichées? ou htmlentities() suffit?
Tout depend de ce que tu compte faire des variables. Pour le nom de la fonction je ne vois pas trop pourquoi un nom plutôt qu'un autre, mais si il y a un standard, enfin une convention universelle pourquoi pas Comme je le disait, si tu veux que la fonction soit capable de faire "abstraction" de la base de donnees, pas la peine d'y mettre le nom d'une base. Le but etant de pouvoir passer a mysqli ou autre sans changer le code appelant la fonction. Enfin, j'ai suivi ton conseil, et j'utilise crypt pour les cookies,enfin pas du blowfish mon hébergeur n'a pas le module apparemment mais celui du dessous (CRYPT_MD5) donc jai choisi de faire crypt(md5()...), bon choix ou pas? Pas mal mais rien de tel qu'un identifiant aleatoire au lieu du mot de passe dans le cookie. Bon courage
__________________
Q: Dois-je haïr et cogner sur Microsoft ? R: Non, vous n'êtes pas obligé. Non pas que Microsoft n'est pas écoeurant, mais il y avait une culture hacker bien avant Microsoft et il y en aura une bien après que Microsoft aura été de l'histoire ancienne. Toute énergie dépensée à haïr Microsoft serait mieux employée par vos compétences et votre passion. Écrivez du bon code, cela brisera suffisamment Microsoft sans polluer votre karma. Comment devenir un hacker ? par Eric Steven Raymond |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com