Forum Clubic

[PHP/MYSQL/DELPHI] Test 5 sec et repond ! (trop dur a expliquer)

Salut, j’ai une petite question en php/mysql/delphi, imaginons que je me connecte a une base mysql via un client (en delphi) et que cette commande permet de changer une valeur en 1 (origine 0) et que quand on ferme le programme normalement sa remet a 0, mais imaginons que la connexion se coupe ou que le programme soit fermer sauvagement (ctrl-alt-sup ou autre) et bah sa ne se remettra pas a 0 (car il n’aura pas le temps de dire au php que le programme va être fermer pour remettre a 0 !) !

Donc je souhaiterai que tout les 5 sec mon php envoie une sorte de commande tel que “tu es la ?” et que quand le client (en delphi) va recevoir cette commande il envoie “oui” et si il envoie rien au bout de 5 sec et bah le php change une valeur de 1 a 0 tout seul !

Comment puis-je faire cela ? Merci beaucoup d’avance !

PS : J’espère m’avoir bien expliquer, c’est très important !

ca me parrait bien compliqué ton histoire

pourquoi veux tu mettre une valeur à 1 et la remettre à 0 quand tu te déconnecte?

Lol, pouquoi quand on pose une quesion sa repond toujours a coter sur les forum :s ! Sa va me servir pour mon programme rien d’autre mais je ne sait pas comment faire (Lire la question) ! Merci.

déjà pourquoi passes tu par php Oo?
il n’y a pas de connecteur mysql pour delphi?

d’autre part, comment veux tu que php puisse savoir si tu es encore connecté? je dis peut etre une grosse boulette, mais je ne crois pas que ca soit faisable

quand à appeler un script toutes les 5 secondes, je n’imagine même pas faire ca un jour Oo

edit: il fallait prendre ca comme un complément d’info, pas comme une réponse à coté de la plaque :wink:

en PHP tu pourras pas “pinguer” ton client de la sorte, par contre l’inverse oui : tu envoies à interval régulier une commande à ta page PHP qui stocke le timestamp actuel.

Après tu vérifie si la différence entre le timestamp stocké et l’actuel est trop grand (exemple: 10 secondes) tu changes ta variable à 0.

Sinon il faudrai que tu fasse un genre de deamon coté serveur (en Perl par exemple) avec un port auquel te connecter, et à ce moment là tu pourrais pinguer le client.

Amicalement,
Olivier P.

Tu dit :

“Après tu vérifie si la différence entre le timestamp stocké et l’actuel est trop grand (exemple: 10 secondes) tu changes ta variable à 0.”

Mais la difference se fera seulement quand on ira sur une page ou tout seul par lui meme ?

Tu dit : “Sinon il faudrai que tu fasse un genre de deamon coté serveur (en Perl par exemple) avec un port auquel te connecter, et à ce moment là tu pourrais pinguer le client.”

Comment puis-je faire cela ?

Merci.

PS : Tu aurai pas MSN stp sa serai bien pour moi. shu_shiwa@hotmail.com

php ne fera jamais rien tout seul, il faut que tu appelles la page ou que tu la lance par un cron par exemple

mais encore une fois, toutes les 2 secondes, ca me parrait un ‘ouf’

“Mais la difference se fera seulement quand on ira sur une page ou tout seul par lui meme ?”
ici celà se fera quand on ira sur la page

“mais encore une fois, toutes les 2 secondes, ca me parrait un ‘ouf’”
+1, je pense que 10 seconde ça irai

Sinon pour le daemon en Perl, c’est vite fait, en utilisant DBD::mysql, mais il te faut un shell.

sinon même sans “ping” on arrive à voir quand l’utilisateur est déconnecté

~aspect@home (Desktop)$ ./server.pl
–> Un utilisateur se connecte depuis 192.168.0.1 …
<-- L’utilisateur 192.168.0.1 se deconnecte !