Détails des méthodes

Actuellement, la classe contient 5 vérifications, qui renvoient un booléen (true/false):

Champ vide

La fonction isEmpty renvoie true si la chaîne passée est vide, c'est à dire si elle ne contient que des caractères "blancs" (espace, tabulation, retour à la ligne).

<?php
function isEmpty($string) {
   $string = preg_replace("!\s!m", "", $string);
   if (trim($string)=='') return true;
   else return false;
}
?>

Champs égaux

La fonction isEqual vérifie que deux chaînes sont identiques.

<?php
function isEqual($string1, $string2) {
   if ($string1==$string2) return true;
   else return false;
}
?>

Champ Email

La fonction isEmail vérifie qu'un champ donné a la syntaxe d'une adresse email.

<?php
function isEmail($email) {
   $pattern = '/^[a-z0-9\._\-\+]+@[a-z0-9\.-]{2,}\.[a-z]{2,4}$/i';
   if (preg_match($pattern, $email) == 1) return true;
   else return false;
}
?>

Champ normalisé

La fonction isNormalized permet de vérifier qu'une chaîne ne contient que des lettres, des chiffres, des tirets et des underline.

<?php
function isNormalized($string) {
   $pattern = '![^a-z0-9\-_]!i';
   return !preg_match($pattern, $string);
}
?>

Longueur minimum d'un champ

La fonction isMini permet de vérifier qu'une chaîne fait au moins une taille minimum (3 caractères par défaut).

<?php
function isMini($string, $length=3) {
   if (strlen($string) < $length) return false;
   return true;
}
?>

Elle ne fait aucun contrôle sur les caractères eux-mêmes, ce qui signifie qu'une chaîne ne contenant que des tabulations ou des retours à la ligne en nombre suffisant renvoie true. Cette fonction est donc souvent associée à isEmpty().

Utilisation

Il suffit d'inclure la classe et de faire des appels des fonctions.

Prenons le cas d'un formulaire d'inscription qui demande:

  • un login devant faire au moins 4 caractères
  • un mot de passe (entré deux fois) devant faire au moins 6 caractères
  • une adresse mail

$this->app->_pst correspond en fait au tableau $_POST

<?php
define('INVALID_EMAIL', 'L\'email doit être valide');
define('MISMATCH_PASSWORD', 'Les mots de passe ne correspondent pas');
define('MINIMAL_LOGIN', 'Le pseudonyme doit faire au moins 4 caractères');
define('MINIMAL_PASSWORD', 'Le mot de passe doit faire au moins 6 caractères');
define('BADCHARS_LOGIN', 'Le pseudonyme ne peut contenir que des lettres non-accentuées, des chiffres, le signe "-" et le signe "_"');
if (Assert::isEmpty($this->app->_pst('login')) || !Assert::isMini($this->app->_pst('login'), '4')) {
   this->app->log(2, MINIMAL_LOGIN);
}
if (!Assert::isEmail($this->app->_pst('email'))) {
   $this->app->log(2, INVALID_EMAIL);
}
if (Assert::isEmpty($this->app->_pst('passwd')) || !Assert::isMini($this->app->_pst('passwd'), '6')) {
   $this->app->log(2, MINIMAL_PASSWORD);
}
if (!Assert::isEqual($this->app->_pst('passwd'), $this->app->_pst('passwd_2'))) {
   $this->app->log(2, MISMATCH_PASSWORD);
}
?>

Sources

Cette petite classe est disponible ici, n'hésitez pas à la compléter et me transmettre vos modifications.