PHP : time out

xRayane Messages postés 8 Date d'inscription   Statut Membre Dernière intervention   -  
 xrayane -
Salut tout le monde !
Donc, dans ma table "membres" j'ai un champ "en_ligne" pour savoir si le membre est en ligne ou non.
Quand il se connecte, une requête modifie le champ "en ligne" et lui donne comme valeur "oui".
Quand il se déconnecte, il lui donne comme valeur "non".

Partie concernée sur traitement_connexion.php :
$req5 = $pdo->prepare("UPDATE membres SET en_ligne = 'oui' WHERE id = :identifiant");
$req5->execute(array("identifiant" => $resultat["id"]));


Partie concernée sur deconnexion.php :
$req = $pdo->prepare("UPDATE membres SET en_ligne = 'non' WHERE id = :identifiant");
$req->execute(array("identifiant" => $_SESSION["id"]));


Le soucis, c'est que le membre est déconnecté par inactivité (timeout), le champ ne sera pas modifié vu que mes requêtes se trouvent sur les pages traitement_connexion.php & deconnexion.php.
Donc comment puis-je modifier ce champ lors d'un timeout ?



A voir également:

9 réponses

xRayane Messages postés 8 Date d'inscription   Statut Membre Dernière intervention  
 
Up.
0
Heliotte Messages postés 1491 Date d'inscription   Statut Membre Dernière intervention   92
 
Bonsoir xRayane,

C'est Noël, alors va faire un tour ici : http://matthieu.chevalier.free.fr/mcscripts/

Je ne l'ai pas testé !!
0
xRayane Messages postés 8 Date d'inscription   Statut Membre Dernière intervention  
 
Merci mais c'est pas un compteur qu'il me faut, c'est juste pouvoir modifier le champ en fonction du timeout.
0
Heliotte Messages postés 1491 Date d'inscription   Statut Membre Dernière intervention   92
 
Tu veux quelque chose qui te dise la vérité sur le nombre de connecté à l'instant T .. alors, ce code est fait pour toi !
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
xRayane Messages postés 8 Date d'inscription   Statut Membre Dernière intervention  
 
Non c'est pas ça que je veux, lis bien mon poste.
0
Heliotte Messages postés 1491 Date d'inscription   Statut Membre Dernière intervention   92
 
Ok, j'espère que tu trouveras ton bonheur ..
0
xRayane Messages postés 8 Date d'inscription   Statut Membre Dernière intervention  
 
Merci !
0
Pridith
 
Le timeout, il est de toi ou c'est le serveur qui fait ça par défaut ?

Si cela vient du serveur, la solution c'est de créer ton propre timeout d'une durée légèrement inférieur. Et à ce moment là tu mets à jour ta BDD.
0
Azraka Messages postés 252 Date d'inscription   Statut Membre Dernière intervention  
 
Bonjour,

A mon humble avis le mieux serait d'appeler en ajax un script qui va aller enregistrer en base de données un timestamp toutes les x minutes.
Ainsi quand l'utilisateur aura le timeout, la base ne sera plus mise à jour.

Pour compter le nombre d'utilisateurs connectés, il suffira de récupérer tous ceux pour lesquels le timestamp enregistré est inférieur à x minutes.

Voir le sdz qui a fait un tuto avec cette technique : https://openclassrooms.com/fr/courses
0
xrayane
 
Oui j'ai la technique du ajax, merci.
0