7.PHP pour le web

7.3.Validation de formulaire

7.3.5.Au quotidien

Si vous êtes amenés à créer plusieurs sites web ou simplement un site web avec différents types de formulaires vous avez tout interêt à créer une bibliothèque contenant les fonctions de validation les plus courantes telles que longueur min, longueur max, contrôle de date et de mail pour ne pas avoir à dupliquer ce type de code. Créer une bibliothèque?... Mmm... Vous pensez vraiment être le seul à rencontrer ce type de problème? Bien sur que non... alors pourquoi réinventer la roue? De tels bibliothèques existent alors utilisons les.

7.3.5.1.Validation avec PEAR

7.3.5.1.1.Présentation

PEAR[c'est quoi?] propose, entre autres, une bibliothèque baptisée Validate chargée de vous permettre, justement, ce type de validation. Vous êtes donc invité à l'installer[comment?].
warning Cette bibliothèque étant encore en version bêta (au moment où nous écrivons ces lignes) vous devrez donc préciser la version à installer. Exemple:
pear install Validate-0.8.1
Validate est un script PHP qui déclare une classe Validate proposant quelques méthodes statiques[c'est quoi?] dont
  • Validate::email($mail) qui retourne TRUE si la chaîne passée en paramètre respecte le format d'une adresse e-mail, FALSE sinon.
  • Validate::date($date, $params) qui retourne TRUE si la chaîne passée en paramètre est bien une date et respecte (éventuellement) les conditions précisées dans $param. Où $param est un tableau associatif pouvant contenir les mots clés
    • format associé à une chaîne précisant le format de la date avec les mots clés %Y, %m, %d, etc..
    • min associé à la date min autorisée, précisée sous forme d'un tableau indexé array($jour, $mois, $annee) ou d'un objet PEAR Date.
    • max associé à la date max autorisée, précisée sous forme d'un tableau indexé array($jour, $mois, $annee) ou d'un objet PEAR Date.
    Si les conditions ne sont pas respectée, la méthode retourne FALSE.
  • Validate::string($chaine, $params) qui retourne TRUE si la chaîne passée en paramètre respecte les conditions précisées dans $param. Où $param est un tableau associatif pouvant contenir les mots clés
    • min_length associé à la longueur minimale que doit avoir la chaîne.
    • max_length associé à la longueur maximale que doit avoir la chaîne.
    • format associé au type de chaîne autorisée, représenté par une des constantes suivantes:
      • VALIDATE_NUM pour une donnée numérique
      • VALIDATE_ALPHA pour n'avoir que des caractères entre A et Z (quelque soit la casse)
      • etc.
    Si les conditions ne sont pas respectée, la méthode retourne FALSE.
  • Validate::number($nombre, $params) qui retourne TRUE si la valeur passée en paramètre est bien un nombre et respecte (éventuellement) les conditions précisées dans $param. Où $param est un tableau associatif pouvant contenir les mots clés
    • min associé à la valeur minimale autorisée.
    • max associé à la valeur maximale autorisée.
    • dec_prec associé au nombre de décimales autorisées (0 = entier).
    • decimal associé à une chaîne de caractères précisant le (ou les) séparateurs décimaux autorisés (typiquement: ou ',' ou '.' ou '.,' pour autoriser les 2).
    Si les conditions ne sont pas respectée, la méthode retourne FALSE.
  • Validate::uri($url, $params) qui retourne TRUE si la chaîne passée en paramètre est bien une URL et respecte (éventuellement) les conditions précisées dans $param. Où $param est un tableau associatif pouvant contenir les mots clés
    • allowed_schemes associé à un tableau de chaînes de caractères correspondant aux protocoles autorisés (ex: array('http', 'https', 'ftp')).
    Si les conditions ne sont pas respectée, la méthode retourne FALSE.