Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1610 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Probleme de date avec php (antidatage ?)

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Probleme de date avec php (antidatage ?)

n°1265315
_gilou_
foad
Posté le 13-12-2005 à 11:13:12  profilanswer
 

Bonjour,
 
j'ai un soucis de date très bizarre, dans un forum punbb mais visiblement le probleme ne lui est pas spécifique.
 
je place le décor :  
 
punbb 1.2.6 avec pas mal de modifs un peu partout, mais le module post.php est identique à l'original
controle du flood (flood interval) à zéro
 
lors du post d'un message, il arrive que j'ai le message "intervalle minimum de 0 secondes entre deux messages". Alors que le flood interval est déjà à zero. pour contourner ce probleme, j'ai ajouté une clause au test d'antiflood :
 
 
passage de  
 

Code :
  1. if (!$pun_user['is_guest'] && !isset($_POST['preview']) && $pun_user['last_post'] != ''
  2.  && (time() - $pun_user['last_post']) < $pun_user['g_post_flood'])


à

Code :
  1. if (!$pun_user['is_guest'] && !isset($_POST['preview']) && $pun_user['last_post'] != ''
  2.  && intval($pun_user['g_post_flood']) != 0
  3.  && (time() - $pun_user['last_post']) < $pun_user['g_post_flood'])


 
Avant meme de regarder la différence entre le time() et la date de dernier post, je vérifie si le flood interval est nul ou pas. Cette solution me paraissait bonne, mais j'ai vite déchanté.
Ayant enlevé cette protection, je me suis rendu compte d'un probleme.
 
Certains des posts sont "antidatés". je m'explique : un post d'id 425 est daté de 18h15, et un post d'id 426 est lui daté de 18h14 !
C'est théoriquement impossible. En gros, lors du post, la date retournée par la fonction time() est "future". lors du test d'antiflood :  
 

Code :
  1. time() - $pun_user['last_post']) < $pun_user['g_post_flood']


ici, le test est passant c'est parceque time() - $pun_user['last_post']) est inférieur à zero (car $pun_user['g_post_flood'] = 0, j'ai vérifié douze fois).
or dans l'opération

Code :
  1. time() - $pun_user['last_post']


time() est _théoriquement_ plus grand que $pun_user['last_post']. ou au pire égal si on est très très très très rapide.
Mais il est tout à fait impossible que la valeur de $pun_user['last_post'] soit supérieure à la valeur rendue par time() étant donné que $pun_user['last_post'] a été renseigné par time() précédemment.
 
et pourtant c'est ce qui m'arrive...
 
j'ai vérifié dans la base, ce n'est pas une erreur du script d'affichage des topics.
 
Quelqu'un à déjà eu affaire  àce genre de soucis ? :/

mood
Publicité
Posté le 13-12-2005 à 11:13:12  profilanswer
 

n°1265362
flo850
moi je
Posté le 13-12-2005 à 12:00:24  profilanswer
 

tes insertions en BDD n'utilisent pas de choses comme "INSERT DELAYED " ?


---------------

n°1265380
omega2
Posté le 13-12-2005 à 12:18:11  profilanswer
 

Moi, je vérais bien un serveur sql décalé de quelques disaines de secondes voire de deux trois minutes par rapport au serveur web, une insertion utilisant la date du serveur sql et un test utilisant la date de php.

n°1265602
_gilou_
foad
Posté le 13-12-2005 à 15:19:52  profilanswer
 

omega c'est une chose a laquelle je n'avais pas pensé, je vais vérifier de ce pas.
 
flo -> non pas de DELAYED

n°1265603
_gilou_
foad
Posté le 13-12-2005 à 15:21:13  profilanswer
 

Non je n'utilise pas de NOW() pour l'affectation :/


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Probleme de date avec php (antidatage ?)

 

Sujets relatifs
probleme avec setColor() // applet[CSS] Problème de conteneur qui ne veut pas s'étendre
Date de modification d'un fichier et VC++ 6PROBLEME -> Bouton + Click + Popup et transmission de contenu
Problème de structure de pageproblème langage C besoin d'aide...
probleme avec tableauAjouter 15 jours à une date [resolu]
probleme de programmation sous matlab[CSS] problème position div
Plus de sujets relatifs à : Probleme de date avec php (antidatage ?)


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR