fermeture de session, upload dans une base mysql

szambaux
Invité n'ayant pas de compte PHPfrance

19 sept. 2007, 15:41

Bonjour, je suis en train de créer un site web, je veux qu'un utilisateur avec la session de fermer ai le champs enligne =0 dans ma base de donnée, et un utilisateur connecté = enligne =1,
comment fait t'on pour uploader une valeur dans la base de donnée lors de la fermeture de la session?

ViPHP
fab
ViPHP | 2657 Messages

19 sept. 2007, 15:44

Tu dois utiliser la fonction UPDATE de mysql sur ton champ

Code : Tout sélectionner

UPDATE `ta_table_sql` SET enligne=0 ou UPDATE `ta_table_sql` SET enligne=1
Plus d'informations sur UPDATE : http://dev.mysql.com/doc/refman/5.0/fr/update.html
Seul l'intelligent a le pouvoir de se trouver con
try { work(); } catch(FlemmeExeption $e) { sleep(84600); }

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

19 sept. 2007, 16:43

Sinon, il est extrêmement difficile de détecter la fermeture de la session d'un utilisateur.

La solution la plus couramment rencontrée, c'est de mettre en place une durée "d'inactivité".
A chaque fois qu'un membre affiche une page, tu mets à jour la date de sa dernière visite, et toutes X minutes, tu mets à jours les enregistrements de ta base pour lesquels la date de dernière visite est supérieure à la durée d'inactivité mais qui sont notés comme étant connecté.

J'espère que j'ai été clair :?
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Eléphanteau du PHP | 48 Messages

19 sept. 2007, 17:34

j'ai utilisé y'a longtemps de ça cette méthode

mettre en base le nom - l'ID de la session - l'heure (a la connexion)

sur chacune de mes pages j'upgradais l'heure ( ce qui prouvait son activité sur le site)

puis un robot testait toutes les 10 min si l'heure dans la base avait un écart de plus de 10 mins je mettais l'utilisateur en déconnecté (ce qui pour ma part me disait qu'il n'était plus devant le pc ou sur mon site depuis 10min)

je sais pas si j'ai été assez clair ? dur en fin de journée :mrgreen:
La théorie, c'est quand on sait tout et que rien ne fonctionne.
La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi.
Ici, nous avons réuni théorie et pratique : Rien ne fonctionne... et personne ne sait pourquoi !
A.Einstein