[PHP] Bug PHP ?!? -> Pro demandé !

Bug PHP ?!? -> Pro demandé ! [PHP] - PHP - Programmation

Marsh Posté le 14-04-2006 à 21:44:35    

Voici mon soucis :
 

Code :
  1. foreach ($tabToCheck as $key=>$value)
  2.       {
  3. //Vérification des champs obligatoires
  4. if ($this->tabCheckValues[$key]['required'] == TRUE and strlen( trim($value) ) == 0){
  5.         
  6.  $tabToReturn[$key]['error'] = "Pas de valeur saisie";
  7.  return $tabToReturn;
  8.    }
  9. //Vérification de la concordence entre le type et la saisie   
  10. if ($this->checkInputValue ($this->tabCheckValues[$key]['type'], $value) == FALSE){
  11.          
  12.  $tabToReturn[$key]['error'] = "Le type de la valeur n'est pas bon";
  13.  return $tabToReturn;
  14. }


 
 
Si je passe dans mon premier If mon tableau recevra bien la bonne valeur, si ça passe dans le 2ème, le tableau recevra une chaine qui veut rien dire, j'ai tout essayé, passer le code dans tous les sens je comprend vraiment pas....
Ca fait deux heure que je suis là dessus si qqun voit le problème...
 
Un exemple parlant de debuggage, je prend ce qui est dans le second if, je le met dans le premier if, et la valeur est bien initialisée ! Je vais péter un plomb...
 
Si vous comprenez pas bien posez moi des questions, je suis vraiment bloqué là dessus :'( :'(
 
Voici l'état du tableau $tabToCheck lorsqu'il est vrai pour le premier if :
 
Array
(
    [usr_log] =>  
    [usr_email] =>  
    [usr_pwd] =>  
)
 
Voici l'état du tableau $tabToCheck lorsqu'il est faux pour le premier if, et vrai pour le second :
 
Array
(
    [usr_log] => Pseudo
    [usr_email] =>  
    [usr_pwd] =>  
)
 
Maintenant voici l'état du $tabToReturn retourné par le premier If :
Array
(
    [usr_log] => Array
        (
            [error] => Pas de valeur saisie
        )
 
    [usr_email] =>  
    [usr_pwd] =>  
)
 
Et l'état du tableau $tabToReturn dans le second if :
 
Array
(
    [usr_log] => Lseudo
    [usr_email] =>  
    [usr_pwd] =>  
)


Message édité par shade93 le 15-04-2006 à 12:29:13

---------------
"I choose a lazy person to do a hard job. Because a lazy person will find an easy way to do it" B. Gates
Reply

Marsh Posté le 14-04-2006 à 21:44:35   

Reply

Marsh Posté le 14-04-2006 à 22:23:08    

explique un peu a quoi il sert ton code parsque j'ai pas bien compris...

Reply

Marsh Posté le 14-04-2006 à 22:29:04    

Tu as pas bien compris quoi ?


---------------
"I choose a lazy person to do a hard job. Because a lazy person will find an easy way to do it" B. Gates
Reply

Marsh Posté le 14-04-2006 à 23:06:12    

qu'y a t-il dans $value?
$this->checkInputValue () revoie t-il un booléen uniquement pour que tu fase le test ==FALSE ?

Reply

Marsh Posté le 14-04-2006 à 23:06:43    

donne un exemple de chaîne ``qui ne veut rien dire``

Reply

Marsh Posté le 14-04-2006 à 23:17:32    

Si on passe le premier if et que je fais un print_r($tabToReturn) j'ai :
 
Array
(
    [usr_log] => Array
        (
            [error] => <p>
 <font >Veuillez saisir tous les champs obligatoires</font>
</p>
 
        )
 
    [usr_email] =>  
    [usr_pwd] =>  
)
 
si je passe le premier if sans rentrer dedans et que je rentre dans le second le print_r($tabToReturn) me renvoit :
 
Array
(
    [usr_log] => <oto
    [usr_email] =>  
    [usr_pwd] =>  
)
 
 
j'ai remarqué un truc :  
 
la saisie de la page suivant sur l'input est 'toto', et la chaine qui doit être mise dans le tableau commence par '<'


Message édité par shade93 le 14-04-2006 à 23:58:32

---------------
"I choose a lazy person to do a hard job. Because a lazy person will find an easy way to do it" B. Gates
Reply

Marsh Posté le 14-04-2006 à 23:18:58    

HTLM <-- c'est normal ca ?


---------------
Me: Django Localization, Yogo Puzzle, Chrome Grapher, C++ Signals, Brainf*ck.
Reply

Marsh Posté le 14-04-2006 à 23:20:41    

Euh oui c'est une partie du nom de ma fonction :??:


Message édité par shade93 le 14-04-2006 à 23:21:05

---------------
"I choose a lazy person to do a hard job. Because a lazy person will find an easy way to do it" B. Gates
Reply

Marsh Posté le 14-04-2006 à 23:22:40    

disons que je m'attendais plus à HTML qu'a HTLM c'est tout [:spamafote]


---------------
Me: Django Localization, Yogo Puzzle, Chrome Grapher, C++ Signals, Brainf*ck.
Reply

Marsh Posté le 14-04-2006 à 23:23:40    

Ah oui exact
Mais "l'erreur" est partout ;)
Donc rien à voir avec le problème


Message édité par shade93 le 14-04-2006 à 23:42:37

---------------
"I choose a lazy person to do a hard job. Because a lazy person will find an easy way to do it" B. Gates
Reply

Marsh Posté le 14-04-2006 à 23:23:40   

Reply

Marsh Posté le 14-04-2006 à 23:51:01    

> Mais "l'erreur" est partout ;)
> Donc rien à voir avec le problème
 
non, steplai, corrige les erreurs, un code bordélique est forcément plus sujet à bugs

Reply

Marsh Posté le 14-04-2006 à 23:52:38    

print_r($tabToCheck)
 
D'où vient $tabToCheck?

Reply

Marsh Posté le 14-04-2006 à 23:53:32    

[error] => <p>
 <font >Veuillez saisir tous les champs obligatoires</font>
</p>
 
encore un truc pas très catholique, tu peut pas mettre juste le message d'erreur, sans les balises html?

Reply

Marsh Posté le 15-04-2006 à 00:00:05    

pour ta première question : Je me suis gouré c'est bien $tabToReturn et non $tabToCheck
 
pour la seconde : je formate l'erreur ici car c'est ma classe de gestion d'erreur qui renvoit le message (j'ai créé une fonction pour formater l'erreur)


Message édité par shade93 le 15-04-2006 à 00:01:59

---------------
"I choose a lazy person to do a hard job. Because a lazy person will find an easy way to do it" B. Gates
Reply

Marsh Posté le 15-04-2006 à 00:03:45    

(j'ai créé une fonction pour formater l'erreur)
essaye le CSS
 
Il semble que l'erreur vienne de l'une de ces fonctions:
$this->getHTLMerrorMessage($this->getErrorMessage($this->tabCheckValues[$key]['type']))
 
j'ai l'impression que ton code source est un poil désorganisé :D

Reply

Marsh Posté le 15-04-2006 à 10:24:42    

Je vais refaire mon code qui sera plus compréhensible (donc revoir le premier message)


Message édité par shade93 le 15-04-2006 à 12:36:04

---------------
"I choose a lazy person to do a hard job. Because a lazy person will find an easy way to do it" B. Gates
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed