17-09-2011, 07:36 PM
(17-09-2011, 06:59 PM)php_addict a écrit : qu'est ce que tu nommes "deltas" ?
et bien, en supposant que tu n'aies aucune erreur dans ton code (pas d appel en double, etc...)
le problème viendrait de la condition qui détecte l'écart de temps
peut être que dans ce cas, il arrive que time soit parfois supérieur à microtime à un instant donné (ce que je nomme "delta")
ça se trouve c'est aussi une question d'arrondi, ou encore de transtypage. Tu as vérifié que $_SESSION['submit_microtime'] ne passait pas à un moment où à un autre par une chaine de caractère ou autre ?
à mon sens, soit il y a un problème ailleurs dans ton code, soit il y a un problème d'arrondi, soit le temps que tu passes avant ton if est suffisamment significatif pour que le script ait le temps de se lancer deux fois avant d'arriver à modifier la valeur en session.
sur ce dernier point, est ce que le fichier de session est mis à jour dès l'instruction de $_SESSION['submit_microtime']=microtime(true); ou bien à la fin du script ?
ce ne sont que des idées comme ça, je n'ai jamais été confronté à ce type de problème