kishkaya
Messages postés365Date d'inscriptionsamedi 26 juin 2004StatutMembreDernière intervention17 avril 2008
-
24 mai 2005 à 22:28
cs_Anthomicro
Messages postés9433Date d'inscriptionmardi 9 octobre 2001StatutMembreDernière intervention13 avril 2007
-
25 mai 2005 à 14:15
bonjour les gens, j'ai deux probleme de session et j'ai essayé d'eplucher la doc sur les session j'ai pas tout compris :
1-parfois je me connecte 1h apres m'etre deconnecté (sans avoir fait
session_unset();) donc nouvelle ip nouveaux tout ce qu'il faut et en
revenant sur mon site, je suis toujours sous la meem session (toujours
loggué en fait), donc la session n'a pas etait detruite et je sais pas
comment faire pour que quand quelqu'un ferme son navigateur, sa session
cesse ...
2-deux personnes peuvent se logguer sous la meme session, comment faire
pour que quand quelqu'un est loggué avec un $_SESSION['login'] personne
ne puisse creer une session de meme login ... ?
Merci pour vos idées ou si vous avez un lien vers une documentation qui puisse m'eclairer tout en s'adressant aux debutants
lolo32
Messages postés36Date d'inscriptionmercredi 13 février 2002StatutMembreDernière intervention 6 juin 2006 24 mai 2005 à 23:16
1 - La session est valide durant un certain temps d'inactivité,
paramétré dans le fichier php.ini. Pour détruire une session, il faut
fermer toutes les fenêtres actives du navigateur (IE, Firefox, Opera,
...). Ca détruira la session du client, mais elle restera néamoins
existante sur le serveur, jusqu'a la fin de la période d'inactivité.
Pour la détruire plus vite, il suffit de faire un session_unset().
2 - lorsqu'une personne se logue avec le login, il faut stocker le fait
que cette personne soit loguée, pour empêcher qu'une nouvelle personne
n'utilise en même temps la connexion. Cependant, il faut prévoir un
timeout, car si la personne oublie de se déconnecter, pour pouvoir à
nouveau utiliser le login pour se connecter.
cs_sjon
Messages postés861Date d'inscriptionmardi 26 mars 2002StatutMembreDernière intervention29 novembre 20061 24 mai 2005 à 23:30
Sael og blesud
Alors le principe avec les sessions c'est que tant que vous ne détruisez pas la sessions ( voir http://fr.php.net/manual/fr/function.session-destroy.php ) via un session_destroy() la session existe car elle est stockée côté server. Si vous souhaitez que la session soit automatiquement détruite à la fermeture du navigateur client vous devriez peut être vous tourner vers de l' htaccess - htpasswd mais cela dépend de la façon dont vous souhaitez, devez gérer vos clients. Vous avez aussi la possibilité de gérer vos sessions avec des cookies. C'est à dire que si l'identification du client réussi vous créez un cookie chiffré ( voir http://fr.php.net/manual/fr/ref.mcrypt.php par exemple ... pour le chiffrement ) dont la durée de vie n'excède pas 15 minutes par exemple... Puis à chaque chargement de pages vous vérifier si le cookie existe si oui vous renouvelez le cookie ( et hop 15 minutes supplémentaire ) sinon direction l'identification ... Ce n'est là qu'une solution car il en existe bien d'autres ...
Pour ce qui est de la gestion des clients usant des mêmes identifiants, vous pouvez dans votre base de données ( car je présume que vous usez d'une base de données avec une table users contenant des champs de type id_user, login (en MD5), password (en MD5 !) ... etc ... ) Vous pourriez alors rajouter un champs "connect" ou vous stockeriez l'adress IP public du client dès que l'identification du client à réussi et si un autre client tente de connecter avec les identifiants d'un autre une simple vérification et hop au revoir puis une routine pour qu'à chaque page vous vérifier les clients encore connectés si tel n'est pas le cas en remet le champ à zéro ... là encore ce n'est qu'une solution parmis tant d'autres ... ( et sûrement pas la meilleur en dehors d'un contexte d'Intranet où elle peut être passablement acceptable ... ;-))
Bon courage ...
NB : Si la réponse vous convient merci de l'accepter pour fermer ce thread ...
Sigurjón Bírgir Sigurðssón aka Sjón
HARDWARE : Partie de l'ordinateur qui reçoit les coups quand se plante le software ...