PHP5 - CLASSE DE VÉRIFICATION DE FORMULAIRE SIMPLE

webdeb Messages postés 488 Date d'inscription samedi 5 avril 2003 Statut Membre Dernière intervention 31 mars 2009 - 26 sept. 2007 à 09:08
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 - 27 sept. 2007 à 13:40
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/44199-php5-classe-de-verification-de-formulaire-simple

malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
27 sept. 2007 à 13:40
Hello,

c'est plus grave que ça ce laxisme dans les comparaisons.
empty() va vérifier qu'une valeur est vide, ou nulle, ou false...
'' aussi...
ce qui implique que 0 rentre dans ces deux cas.
Et quand après on a aussi ça :
# public static function notZero($value)
# {
# if ($value == 0) {
# return false;
# }
#
# return true;
# }

Ca devient très embêtant, car ce code ne vérifie absolument pas si la valeur est égale à 0. Si elle est false, ou '', c'est pareil.

Quand on fait un code de traitement de données, on DOIT coder de manière stricte! Tes comparaisons doivent être strictes, et tu ne peux pas te permettre de ne pas connaître les différences entre empty(), isset(), is_null(), is_int(), ==, ===, !=, !== etc.
Sinon, ton code va forcément être buggé.
Et en l'occurence, il l'est.

Sinon, bien aussi pour les filtres en effet :-) Mais tu devrais approfondir, tu t'en sers peu là...et ils peivent justement t'éviter bien des déboires.
codefalse Messages postés 1123 Date d'inscription mardi 8 janvier 2002 Statut Modérateur Dernière intervention 21 avril 2009 1
27 sept. 2007 à 10:59
en fait ta double vérification ne fait que te perdre du temps de calcul et des lignes de code en plus :)
cs_NainPuissant Messages postés 12 Date d'inscription mardi 4 octobre 2005 Statut Membre Dernière intervention 26 septembre 2007
26 sept. 2007 à 10:09
Hey merci pour pathinfo je connaisais pas =o.
Et pour les != '' je fais juste un double test : avec != et avec !empty... juste au cas où =P.
Bon après pour les fonctions de check, j'ai juste fais des trucs simples chacun peut faire sa ptite fonction.

webdeb Messages postés 488 Date d'inscription samedi 5 avril 2003 Statut Membre Dernière intervention 31 mars 2009 4
26 sept. 2007 à 09:08
De bonnes idées, notamment l'implémentation de l'extension Filter de PHP5. Par contre j'ai quelques remarques à te faire pour améliorer tout ça :

1/ Remplacer tes != '' par !empty($maVar)
2/ Une extension doit plutôt se récupérer à partir de la fonction pathinfo() et de sa constante PATHINFO_EXTENSION.

++
Rejoignez-nous