Statut espace membre

  • Créateur du sujet Créateur du sujet xcode
  • Date de début Date de début
A

Anonyme

Invité
Bonjour tout le monde !
J'ai créé un site (http://myxif.dyndns.org/) avec espace membre et tout le bazar depuis plusieurs mois.
Pour l'espace membre, dans la db MySQL, il y a un champ statut (connecté = 1, déconnecté = 0).
Quand on se connecte, le statut passe à 1 et inversement quand on se déconnecte.
Le problème, c'est que quand l'utilisateur ne se déconnecte pas avec le lien, le statut reste à un mais la session PHP est supprimée !! :mouais:
Je voudrait que le statut passe donc à zéro.
 
Je pense que tu devrais plutôt stocker dans la base de données la date de dernière activité sur le site. Par exemple, chaque fois qu'un utilisateur loggué fait une action, tu loggues le timestamp sur sa ligne correspondante dans la BDD.

Et pour savoir si l'utilisateur est connecté ou non, tu sélectionnes toutes les lignes d'utilisateurs où le timestamp a été modifié il y a moins de 300 secondes, par exemple.

Si tu veux absolument garder ce champ "connecté" avec les valeurs 1 ou 0, tu peux aussi passer par une tâche CRON qui s'auto executera toutes les X secondes et qui executera une requête SQL du type "UPDATE users SET connecte=0 WHERE timestamp < NOW()-300".

Bon courage !
 
Je pense que ta solution est très bonne. Facile à mettre en œuvre puisque je n'ai qu'une seule page (index.php) ! :D
Sinon, 300 secondes, c'est le temps de suppression de la session PHP par défaut ?
Merci beaucoup :up: