FONCTION DE NETTOYAGE DE VARIABLES AVEC UNE INSTALLATION DE PHP BASIQUE

Messages postés
10918
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
- - Dernière réponse : malalam
Messages postés
10918
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
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

Afficher la suite 
malalam
Messages postés
10918
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
17 -
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
cs_jroger
Messages postés
25
Date d'inscription
mercredi 30 janvier 2002
Statut
Membre
Dernière intervention
26 mai 2009
-
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
10918
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
17 -
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.