Bridou Posté 23 Novembre 2005 Posté 23 Novembre 2005 (modifié) Bonsoir, Je voudrais savoir s'il existe des fonctions en PHP permettant de réaliser une sorte de chronomètre. J'explique mon besoin, je voudrais organiser un petit jeu (pas de lot, ni quoique ce soit à gagner au bout, c'est juste pour le fun ) dans lequel un visiteur doit répondre à une question le plus rapidement possible. Donc je pense que le fonctionnement basique pourrait etre celui-ci : La question s'affiche à l'écran, un compteur démarre... et quand l'utilisateur valide sa réponse en cliquant sur un bouton par exemple, le compteur s'arrête, et je récupère le temps qu'il a mis à répondre dans un variable. Edit: Ou plutôt que lancer le chronomètre à l'ouverture de la page, afficher un bouton Commencer et Arrêter que l'utilisateur devra lui même appuyer pour lancer et arrêter le chronomètre. Donc savez vous quelle est la meilleure solution pour réaliser ce petit "chronomètre" ? Merci d'avance à vous tous, Bonne soirée. Bridou Modifié 23 Novembre 2005 par Bridou
Dan Posté 23 Novembre 2005 Posté 23 Novembre 2005 Salut Bridou, Tout simplement en te basant sur une fonction existante: microtime() Par exemple: <?phpfunction microtime_float() { list($usec, $sec) = explode(" ", microtime()); return ((float)$usec + (float)$sec);}$time_start = microtime_float();// Attends pendant un momentusleep(100);$time_end = microtime_float();$time = $time_end - $time_start;echo $time." secondes\n";?> Il te suffit de remplacer la ligne usleep(100) par ton code de saisie de réponse.
Bridou Posté 26 Novembre 2005 Auteur Posté 26 Novembre 2005 (modifié) Merci Dan, effectivement cette solution permet d'avoir un temps très prècis et c'est ce que je cherchais. Cela dit, j'ai un autre souci, cela fonctionne très bien si je déclenche le chrono à l'ouverture de la page et que je l'arrête en appuyant sur un bouton de validation d'un formulaire, comme suit : <?phpfunction microtime_float(){ list($usec, $sec) = explode(" ", microtime()); return ((float)$usec + (float)$sec);}if(isset($_POST[debut])){ $fin = microtime_float(); $time = $fin - $debut; echo $time." secondes\n"; }else{ $debut = microtime_float(); echo" <form method=post> <input type=hidden name=debut value=$debut> <input type=submit> <form> ";}?> (c'est un code fait à l'arrache juste pour tester) Mais j'aimerais maintenant pouvoir déclencher le chronomètre à l'aide d'un bouton, et pour faire ca il n'y a que le javascript je crois, mais on ne peut pas éxécuter du code php sur un OnClick d'un bouton par exemple, me trompes-je ? Donc comment je pourrais faire un chronomètre qui se déclenche et s'arrête sur l'appuie de deux boutons disctincts (debut - fin) et garder cette précision offerte par les fonctions php ? Encore merci d'avance, Bridou Modifié 26 Novembre 2005 par Bridou
Dan Posté 26 Novembre 2005 Posté 26 Novembre 2005 Si tes boutons font partie d'un formulaire et ont un nom, tu peux définir le document courant comme action du formulaire, tester ces variable et démarrer ou arrêter le chronomètre selon leur état. Pas besoin de javascript pour cela.
eternity Posté 4 Mars 2007 Posté 4 Mars 2007 Salut C'est aussi un peu ce que je souhaiterais faire mais à la différence que je souhaite connaitre le nombre de secondes entre 2 rechargements d'une page et la je sèche... En fait j'ai une page d'un tchat qui se rafraichie toutes les 60 secondes, je calcule ainsi le temps de présence d'un connecté. Par contre si celui ci appuie de lui meme sur F5 la valeur est de 60 à chaque fois et je ne sais pas comment faire pour compter les secondes entre le 1er chargement et le rechargement automatique ou via la touche F5 Vous auriez une piste ? Merci !
Sarc Posté 4 Mars 2007 Posté 4 Mars 2007 Bonjour, En utilisant les cookies et la fonction time(), tu peux calculer aisément la différence de temps entre deux chargements de la page... Au chargement de la page, tu mets dans un cookie la valeur donnée par time(), et au deuxième chargement, tu fais time() - valeur_du_cookie... Voilà l'idée en gros
eternity Posté 4 Mars 2007 Posté 4 Mars 2007 ok merci beaucoup pour la piste sarc ca fonctionne impec merci !
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant