FONCTION DE NETTOYAGE DE VARIABLES AVEC UNE INSTALLATION DE PHP BASIQUE

malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 - 2 mars 2010 à 10:57
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 - 2 mars 2010 à 18:55
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/51336-fonction-de-nettoyage-de-variables-avec-une-installation-de-php-basique

malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
2 mars 2010 à 18:55
Certes, il faut php 5.2 au moins, mais ça devient très fréquent quand même.
Par contre, VALIDATE_FILTER_INT gère le bornage des valeurs numériques, pour les entiers du moins.
Et FILTER_VALIDATE_REGEXP ou FILTER_CALLBACK permettent au moins de gérer ce qui manquerait éventuellement.
Il manquera toujours quelque chose à un code de validation de données : j'avais fait un code similaire au tien il y a pas mal de temps, en objet celui-là, pour la raison que tu évoques en premier : php5.2 n'était alors pas franchement répandu, et j'avais justement ajouté ces 2 "filtres" très utiles.
Cela n'enlève rien à l'utilité de ton code si on n'a pas php5.2, si ce n'est que j'ajouterais cette possibilité : on ne peut pas imaginer tous les besoins d'un utilisateur. Alors autant lui laisser l'opportunité de répondre lui-même à ces besoins, en lui facilitant la tâche.
cs_jroger Messages postés 25 Date d'inscription mercredi 30 janvier 2002 Statut Membre Dernière intervention 26 mai 2009
2 mars 2010 à 18:35
Oui je connais les filtres build-in de PHP. Ils ont le mérite d'unifier ce genre de nettoyage, mais:

- Il faut avoir un hébergeur qui supporte PHP 5.2.0+
- Ils ne gèrent pas le bornage des valeurs numériques et des longueurs de chaines, donc elles ne protègent propablement pas des attaques par cast ou mauvais caractères unicodes (spécifique mysql), ce qui oblige à des contrôles supplémentaires. Bonjour l'usine à gaz.
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
2 mars 2010 à 10:57
Hello,

je n'ai pas trop le temps de mater ton code, mais jette quand même un oeil à ça pour du "nettoyage" de variables en standard dans php :
http://fr.php.net/manual/en/book.filter.php
Rejoignez-nous