Affichage différent de microtime() d'un poste à l'autre

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Affichage différent de microtime() d'un poste à l'autre

Re: Affichage différent de microtime() d'un poste à l'autre

par Aureusms » 28 févr. 2010, 13:08

Ca doit être assez frustrant...

Re: Affichage différent de microtime() d'un poste à l'autre

par clodinfo » 27 févr. 2010, 15:27

J'ai eu l'occasion d'en parler avec quelqu'un qui a probablement trouvé l'explication : cette page étant en hébergement mutualisé, elle était probablement hébergée sur plusieurs serveurs en load-balancing et l'un d'eux n'était probablement pas à la même heure que les autres et avançait de 10 à 20 secondes, ce qui explique que certains utilisateurs n'avaient pas la même heure que les autres ...

Re: Affichage différent de microtime() d'un poste à l'autre

par ooflorent » 20 janv. 2010, 23:38

Ca n'est pas possible. Le problème ne peut pas venir du serveur.

Est-ce que les 2 utilisateurs testent avec le même navigateur ? Si non, tout le monde sous Firefox 3.5.
Est-ce que les 2 utilisateurs ont désactivé le cache ? Si non, Outils > Options... > Avancé > Réseau > 0 Mo > Vider le cache maintenant.
Est-ce que les 2 utilisateurs accèdent bien à un serveur distant (2 PC + 1 serveur) ? Si non, bah ton test est bidon !
Est-ce que les 2 utilisateurs appuient vraiment en même temps ?

Si la réponse est oui à toutes ces questions, alors il y a forcément un autre problème du coté client. Tu peux consulter le fichier access.log de ton serveur Apache afin de comparer les temps d'accès.

Re: Affichage différent de microtime() d'un poste à l'autre

par clodinfo » 20 janv. 2010, 23:25

Merci pour vos réponses.

Non, ce sont bien des secondes. Cela semble durer le temps d'une session, l'un des utilisateurs étant systématiquement décalé de x secondes par rapport aux autres.

J'ai fait un code très simple :

Code : Tout sélectionner

<?php header("Cache-Control: no-cache, must-revalidate"); header("Expires: Fri, 01 Jan 2010 00:00:00 GMT"); file_put_contents("fichier.txt",date("YmdHis")."\r\n",FILE_APPEND); ?>
Et voilà ce que ça donne quand j'ai le problème :
  • 20100119194312 Utilisateur 1
    20100119194317 Utilisateur 1
    20100119194323 Utilisateur 1
    20100119194335 Utilisateur 2
    20100119194337 Utilisateur 2
    20100119194328 Utilisateur 1
    20100119194338 Utilisateur 2
    20100119194333 Utilisateur 1
    20100119194343 Utilisateur 2
    20100119194338 Utilisateur 1
    20100119194349 Utilisateur 2
    20100119194343 Utilisateur 1
    20100119194348 Utilisateur 1
    20100119194359 Utilisateur 2
    20100119194400 Utilisateur 2
    20100119194402 Utilisateur 2
    20100119194353 Utilisateur 1
La date serveur de l'utilisateur 2 est en avance d'une dizaine de secondes sur celle de l'utilisateur 1 ... incompréhensible !

Re: Affichage différent de microtime() d'un poste à l'autre

par AB » 20 janv. 2010, 14:42

D'après ce que j'ai compris les tests se font sur le serveur distant... ça voudrait dire que le temps d'accès des terminaux vers le serveur peut différer de plus de dix secondes ce qui est quand même surprenant. Je pencherais plutôt pour la réponse de ooflorent

Re: Affichage différent de microtime() d'un poste à l'autre

par Aureusms » 20 janv. 2010, 10:46

Une différence de réponse d'ordinateur pourrait-il jouer?
Même si le mutli-tache est conservé, je crois me rappeler qu'il ne s'agit en fait que des mono-taches exécutées en parallèles voir à la suite selon le type de serveur.
La différence temporelle est-elle conservée qqsoit le PC utilisée i.e est ce que cela dépend de la session ou du PC? Est ce que cette différence constante se fait toujours entre le PC A > PC B mais pas entre PC B < PC A ? Les deux PC sont-ils rigoureusement identiques ?

Note j'ai marqué PC mais cela peut aussi des MAC, ou autre....

Re: Affichage différent de microtime() d'un poste à l'autre

par ooflorent » 17 janv. 2010, 22:37

Euh ... tu es sûr que ça n'est pas plutôt un écart de 20 microsecondes ou plus généralement que tu as bien lu/interprété le résultat ?

Affichage différent de microtime() d'un poste à l'autre

par clodinfo » 17 janv. 2010, 11:17

Bonjour à tous,

J'ai un problème très surprenant : j'ai une page PHP5 qui ne fait qu'afficher microtime() : "echo microtime();". Logiquement, et c'est le cas le plus souvent, les différentes personnes qui consultent cette page affichent le même résultat au même moment. Mais j'ai régulièrement le cas de 2 personnes qui ont 10 à 20 secondes d'écart (alors qu'elles synchronisent leur appui sur la touche F5). C'est tout à fait incompréhensible et lorsque cela se produit, le problème est alors systématique entre ces 2 personnes jusqu'à leur déconnexion.

J'ai ajouté les lignes
header("Cache-Control: no-cache, must-revalidate");
header("Expires: Fri, 01 Jan 2010 00:00:00 GMT");
juste avant au cas où ce serait un problème de cache, mais cela ne change rien.

Si quelqu'un a une idée, je suis preneur, car, là, je suis sec ...