diff --git a/lang/verifier_fr.php b/lang/verifier_fr.php index 23add653389caa43cbfc72814e5ce3cca4bed41e..c69372ae7ff3c4ee7319066848549cd1d3837b01 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 5d185a92929eaa774e64fd55baeb0ddc1c69d2fc..0bc08b28f65a39e81411a1c7fcbdcea97a6bae6d 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 ae9901fc70fea3b61d34f198080265085f24d650..10a932658d8526d5368f34903dc431522bde3769 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 95e7a8559780b9253f215966fa48c725fb68e2ce..6bbb5d19606b850aa4979da8e35b70ef80cce599 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); }