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

Petit nouveau ! | 3 Messages

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 ...

Eléphant du PHP | 63 Messages

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 ?

ViPHP
ViPHP | 1996 Messages

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....
It is nice to be important but it is more important to be nice
http://www.aureuswebfactory.fr

ViPHP
AB
ViPHP | 5818 Messages

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

Petit nouveau ! | 3 Messages

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 !

Eléphant du PHP | 63 Messages

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.

Petit nouveau ! | 3 Messages

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 ...

ViPHP
ViPHP | 1996 Messages

28 févr. 2010, 13:08

Ca doit être assez frustrant...
It is nice to be important but it is more important to be nice
http://www.aureuswebfactory.fr