PHP FILTRE

Petit nouveau ! | 3 Messages

04 mai 2021, 18:11

Bonjour je me permets en tant que débutant de venir ici pour avoir les réponses des experts ;)

1) Et ce qu'on peut clairement faire une validation d'un formulaire rien qu'avec les filtres PHP ou on est obligé de passer par d'autre choses FILTRE + fonction de php es ce que cela suffit pour un maximum de sécurité.

2) Et si quelqu'un d'entre vous pourrais me faire une liste des vérifications à faire sauf celle que je mets en liste ici que je connais déjà.
0 Si input vide
1 regEX
2 supp les espaces devant et dérriére
3 supp balises et caractéres spéciaux
4 Test si TEXT ou INT

3) Une dernière question es ce qu'on peut mettre dans un tableau de ce genre plusieurs FILTER je ne pense pas j'ai vu aucun exemple, par exemple pour 'nom' je filtre que le regEX rien d'autre si je veux continuer y'a t-il une façon de filtre plusieurs fois le même input ( rajouter FILTER_SANITIZE_STRING ) pour 'nom' dans ce genre de tableau ou un seul filtre ?
$tabReg =
[
  'nom' => ['filter' => FILTER_VALIDATE_REGEXP,
            'options' => ["regexp" => "/^[A-Za-z]{1,15}$/"] ],
  'number' => ['filter' => FILTER_VALIDATE_REGEXP,
            'options' => ["regexp" => "/^[0-9]{1,11}$/"] ],
  "email" => ['filter' => FILTER_VALIDATE_REGEXP,
            'options' => ["regexp" => "/^[\w-\.][email protected]([\w-]+\.)+[\w-]{2,4}$/"] ]
];
Merci pour vos réponses ;)

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 8823 Messages

05 mai 2021, 08:43

Il est préférable d'utiliser les filtres prédéfinis quand c'est possible, car avec les regex tu risques d'oublier des cas
Par exemple pour les emails, il y a le filtre FILTER_VALIDATE_EMAIL, ta regex oublie beaucoup de cas valides :
https://www.php.net/manual/fr/filter.fi ... lidate.php

Le principe c'est que tu ne dois pas faire confiance à ce que te fournit l'utilisateur donc tu dois supprimer tout caractère qui n'est pas explicitement autorisé.
Et ensuite si tu affiches ce qui t'a été envoyé dans une page HTML tu dois utiliser htmlentities()
Quand tout le reste a échoué, lisez le mode d'emploi...