From 1cb69dcc3216e39e014be255a31fdc0ee2d5a456 Mon Sep 17 00:00:00 2001 From: "xdjuj@apsulis.com" <> Date: Wed, 6 Jan 2010 20:03:51 +0000 Subject: [PATCH] =?UTF-8?q?-=20Plus=20tol=C3=A9rant=20sur=20les=20s=C3=A9p?= =?UTF-8?q?arateurs=20de=20dates=20-=20Longueur=20de=20chaine=20EGALE=20?= =?UTF-8?q?=C3=A0=20une=20valeur?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lang/verifier_fr.php | 1 + test/verifier.html | 4 ++++ verifier/date.php | 8 +++++--- verifier/taille.php | 5 +++++ 4 files changed, 15 insertions(+), 3 deletions(-) diff --git a/lang/verifier_fr.php b/lang/verifier_fr.php index 23add65..c69372a 100644 --- a/lang/verifier_fr.php +++ b/lang/verifier_fr.php @@ -16,6 +16,7 @@ $GLOBALS[$GLOBALS['idx_lang']] = array( 'erreur_siren' => 'Le numéro de SIREN n\'est pas valide.', 'erreur_siret' => 'Le numéro de SIRET n\'est pas valide.', 'erreur_taille_entre' => 'La valeur doit comprendre entre @min@ et @max@ caractères.', +'erreur_taille_egal' => 'La valeur doit comprendre exactement @egal@ caractères.', 'erreur_taille_max' => 'La valeur doit comprendre au maximum @max@ caractères.', 'erreur_taille_min' => 'La valeur doit comprendre au minimum @min@ caractères.', 'erreur_telephone' => "Le numéro n'est pas valide.", diff --git a/test/verifier.html b/test/verifier.html index 5d185a9..0bc08b2 100644 --- a/test/verifier.html +++ b/test/verifier.html @@ -59,6 +59,10 @@ echo "$un_autre_chaine 5 caractères max ?"; var_dump(verifier($un_autre_chaine, 'taille', array('max'=>5))); echo "$un_autre_chaine 4 caractères mini ?"; var_dump(verifier($un_autre_chaine, 'taille', array('min'=>4))); +echo "$une_chaine de 3 caractères ?"; +var_dump(verifier($une_chaine, 'taille', array('egal'=>3))); +echo "$un_autre_chaine de 3 caractères ?"; +var_dump(verifier($un_autre_chaine, 'taille', array('egal'=>3))); ?> </pre> diff --git a/verifier/date.php b/verifier/date.php index ae9901f..10a9326 100644 --- a/verifier/date.php +++ b/verifier/date.php @@ -4,7 +4,7 @@ if (!defined("_ECRIRE_INC_VERSION")) return; /** - * Une date au format JJ/MM/AAAA + * Une date au format JJ/MM/AAAA (avec séparateurs souples : espace / - .) * TODO : introduire via les options le FORMAT de la date, pour accepter différentes écritures * On pourrait faire mieux, genre vérifier les jours en fonction du mois * Mais c'est pas très important, on reste simple @@ -13,11 +13,13 @@ if (!defined("_ECRIRE_INC_VERSION")) return; function verifier_date_dist($valeur, $options=array()){ $erreur = _T('verifier:erreur_date'); $ok = ''; + // On tolère différents séparateurs + $valeur = ereg_replace("\.|/| ",'-',$valeur); // On vérifie la validité du format - if(!preg_match('#^[0-9]{2}/[0-9]{2}/[0-9]{4}$#',$valeur)) return $erreur; + if(!preg_match('#^[0-9]{2}-[0-9]{2}-[0-9]{4}$#',$valeur)) return $erreur; // On vérifie vite fait que les dates existent, genre le 32 pour un jour NON, (mais on pourrait aller plus loin et vérifier en fonction du mois) - list($jour,$mois,$annee) = explode('/',$valeur); + list($jour,$mois,$annee) = explode('-',$valeur); if(($jour > 31)|| ($jour < 1) || ($mois > 12) || ($mois < 1) || ($annee < 1800)) return $erreur; // 1800, je crois qu'avant les gens ne sont plus vivants °_° return $ok; diff --git a/verifier/taille.php b/verifier/taille.php index 95e7a85..6bbb5d1 100644 --- a/verifier/taille.php +++ b/verifier/taille.php @@ -17,12 +17,17 @@ function verifier_taille_dist($valeur, $options=array()){ if (isset($options['max'])){ $ok = ($ok and (strlen($valeur) <= $options['max'])); } + if (isset($options['egal'])){ + $ok = ($ok and (strlen($valeur) == $options['egal'])); + } if (!$ok){ if (isset($options['min']) and isset($options['max'])) $erreur = _T('verifier:erreur_taille_entre', $options); elseif (isset($options['max'])) $erreur = _T('verifier:erreur_taille_max', $options); + elseif (isset($options['egal'])) + $erreur = _T('verifier:erreur_taille_egal', $options); else $erreur = _T('verifier:erreur_taille_min', $options); } -- GitLab