Accueil > > > CLASS DE VALIDATIONS DE DATE, ENTIER, STRING,...
CLASS DE VALIDATIONS DE DATE, ENTIER, STRING,...
Information sur la source
Description
Ma classe a pour but de regrouper les validation des string des chiffres des dates ou meme des objets. L'idée est de ne pas se limiter a un test (format,obligatoire, limite) mais de les regrouper. Une sous classe permet de définir les différents format de test utiles. Ceci a pour but de ne pas surcharger la class mère "commune". On peut aussi compléter ou surcharger les tests dans cette sous classe. La validation retourne un bool et empile les différentes erreurs rencontrées dans un tableaux d erreur
Source
- <?//----------------------- classe mère --------------------------------------
- class Validation_Data_Exception extends Exception {
-
- const ERROR_FORMAT_NOT_DEFINED = 'format type not defined';
- const ERROR_FORMAT_ILL_DEFINED = 'format ill-defined';
- const ERROR_REGEX_TYPE_NOT_DEFINED = 'regex type not defined';
- const ERROR_LIMIT_TYPE_NOT_DEFINED = 'limit type not defined';
- const ERROR_LIMIT_MIN_MAX = 'limit min max error';
-
- public function __construct($msg, $code = 0) {
- parent::__construct($msg, $code);
- }
- }
-
-
- abstract Class Validation_Data
- {
- //formats contain tests_type
- protected $formats;
-
- //tests_type contain tests
- protected $test_type = array("textfield1"=>array("mandatory","regex","limit"));
- //mandatory(true|false)
- //regex('Alphanum'|'integer'|'float'|'date_ch'|'email')
- //limit('num'|'string' ; (integer|false ; true|false ; integer|false ; true|false))
-
- //validation errors
- protected $errors;
-
- protected function __construct ($formats) {
- $this->formats = $formats;
- $this->errors = array();
- }
-
- function valid_format($format,$value) {
- $return = true;
- $tests = $this->get_tests($format);
- $tests_values = $this->get_tests_values($format);
- if(count($tests) == count($tests_values)) {
- for($i=0;$i<count($tests);$i++) {
- $temp_return = $this->valid_test($tests[$i],$tests_values[$i],$value);
- $return = $return && $temp_return["return"];
- if($temp_return["break"]) {
- break;
- }
- }
- return $return;
- } else {
- throw new Validation_Data_Exception (Validation_Data_Exception::ERROR_FORMAT_ILL_DEFINED);
- }
- }
-
- protected function get_test_type($format) {
- if(isset($this->formats[$format][0])) {
- $test_type = $this->formats[$format][0];
- return $test_type;
- } else {
- throw new Validation_Data_Exception (Validation_Data_Exception::ERROR_FORMAT_NOT_DEFINED);
- }
- }
-
- protected function get_tests($format) {
- $test_type = $this->get_test_type($format);
- if(isset($this->test_type[$test_type])) {
- $tests = $this->test_type[$test_type];
- return $tests;
- } else {
- throw new Validation_Data_Exception (Validation_Data_Exception::ERROR_FORMAT_NOT_DEFINED);
- }
- }
-
- protected function get_tests_values($format) {
- if(isset($this->formats[$format][1])) {
- return $this->formats[$format][1];
- } else {
- throw new Validation_Data_Exception (Validation_Data_Exception::ERROR_FORMAT_NOT_DEFINED);
- }
- }
-
- function valid_test($test_type,$test_values,$value) {
- switch($test_type) {
- case "mandatory":
- $return = $this->valid_mandatory($test_values,$value);
- break;
- case "regex":
- $return = $this->valid_regex($test_values,$value);
- break;
- case "limit":
- $return = $this->valid_limit($test_values,$value);
- break;
- }
- return $return;
- }
-
-
- private function valid_regex($type,$value) {
- $return = false;
- switch($type) {
- case "Alphanum":
- $return = preg_match("/^[^<>\\=]+$/", $value);
- if($return == false) {
- array_push($this->errors, "format.Alphanum.error");
- }
- break;
-
- case "integer":
- //[-]12456789
- $return = preg_match("/^[\-]?[0-9]+$/", $value);
- if($return == false) {
- array_push($this->errors, "format.integer.error");
- }
- break;
-
- case "float":
- $return = preg_match("/^[\-|\+]?[0-9]+[\.]?[0-9]*?$/", $value);
- if($return == false) {
- array_push($this->errors, "format.float.error");
- }
- break;
-
- case "date_ch":
- //jj.mm.aaaa
- $return = preg_match("/^[0-9]{1,2}\.[0-9]{1,2}\.[0-9]{4}$/", $value);
- if($return) {
- $return = checkdate(substr($value,3,2),substr($value,0,2),substr($value,6,4));
- }
- if($return == false) {
- array_push($this->errors, "format.date_ch.error");
- }
- break;
-
- case "email":
- //$return = preg_match("/^[a-zA-Z0-9|\-|\.|\_]+[@][a-zA-Z0-9|\-|\.\_]+[\.]{1}[a-zA-Z]{2,}$/", $value);
- $return = filter_var($value, FILTER_VALIDATE_EMAIL);
- if($return == false) {
- array_push($this->errors, "format.email.error");
- }
- break;
- default:
- throw new Validation_Data_Exception (Validation_Data_Exception::ERROR_REGEX_TYPE_NOT_DEFINED);
- break;
- }
- return array("return"=>$return,"break"=>!$return);
- }
-
- private function valid_limit($limit,$value) {
- $limit_type = $limit[0];
- $limit_min = $limit[1][0];
- $limit_min_inclusive = $limit[1][1];
- $limit_max = $limit[1][2];
- $limit_max_inclusive = $limit[1][3];
- if(!($limit_min > $limit_max && $limit_min != false && $limit_max != false)) {
- switch($limit_type) {
- /* first arg must a valid type of field to continue validation */
- case "string":
- $return = $this->valid_limit_string($value,$limit_min,$limit_min_inclusive,$limit_max,$limit_max_inclusive);
- break;
- case "num":
- $return = $this->valid_limit_num($value,$limit_min,$limit_min_inclusive,$limit_max,$limit_max_inclusive);
- break;
- case "date_ch":
- $date = substr($value,6,4).substr($value,3,2).substr($value,0,2);
- $return = $this->valid_limit_num($date,$limit_min,$limit_min_inclusive,$limit_max,$limit_max_inclusive);
- break;
- default:
- throw new Validation_Data_Exception (Validation_Data_Exception::ERROR_LIMIT_TYPE_NOT_DEFINED);
- break;
- }
- if(!$return) {
- array_push($this->errors, "limit.error");
- }
- return array("return"=>$return,"break"=>false);
- } else {
- throw new Validation_Data_Exception (Validation_Data_Exception::ERROR_LIMIT_MIN_MAX);
- }
- }
-
- function valid_limit_string($value,$value_min,$value_min_inclusive,$value_max,$value_max_inclusive) {
- $result = $this->valid_limit_num(strlen($value),$value_min,$value_min_inclusive,$value_max,$value_max_inclusive);
- return $result;
- }
-
- function valid_limit_num($value,$value_min,$value_min_inclusive,$value_max,$value_max_inclusive) {
- $result = false;
- $bitmask = ($value_min !== false)
- + (($value_min_inclusive !== false) * 2)
- + (($value_max !== false) * 4)
- + (($value_max_inclusive !== false) * 8);
- switch($bitmask) {
- // check min value only
- case 1:
- $result = ($value > $value_min);
- break;
- // check min or equal value only
- case 3:
- $result = ($value >= $value_min);
- break;
- // check max value only
- case 4:
- $result = ($value < $value_max);
- break;
- // check min and max value only
- case 5:
- $result = ($value > $value_min) & ($value < $value_max);
- break;
- // check max or equal value only
- case 12:
- $result = ($value <= $value_max);
- break;
- // check min or equal and max value
- case 7:
- $result = ($value >= $value_min) & ($value < $value_max);
- break;
- // check min and max or equal only
- case 13:
- $result = ($value > $value_min) & ($value <= $value_max);
- break;
- // check min or equal and max or equal value
- case 15:
- $result = ($value >= $value_min) & ($value <= $value_max);
- break;
-
- } // end switch
- return $result;
- }
-
-
- function valid_mandatory($test_value, $value) {
- $return = array("return"=>false,"break"=>false);
- //if (is mandatory)
- if($test_value) {
- if($value == "") {
- array_push($this->errors, "mandatory.error");
- $return = array("return"=>false,"break"=>true);
- } else {
- $return = array("return"=>true,"break"=>false);
- }
- }//if isn t mandatory
- else {
- if($value == "") {
- $return = array("return"=>true,"break"=>true);
- } else {
- $return = array("return"=>true,"break"=>false);
- }
- }
- return $return;
- }
- }
-
- ?>
-
- <?
- //----------------------------------- sous class ------------------------------
-
- Class EB_Validation_Data extends Validation_Data
- {
- private $local_formats = array(
- "text1" =>array("textfield1",array(true,"Alphanum",array("string",array(3,false,10,false)))),
- "text2" =>array("textfield1",array(true,"Alphanum",array("string",array(3,true,10,false)))),
- "text3" =>array("textfield1",array(true,"Alphanum",array("string",array(3,false,10,true)))),
- "text4" =>array("textfield1",array(false,"Alphanum",array("string",array(3,true,10,true)))),
- "text5" =>array("textfield1",array(false,"Alphanum",array("string",array(false,false,10,false)))),
- "text6" =>array("textfield1",array(false,"Alphanum",array("string",array(3,false,false,false)))),
- "text7" =>array("textfield1",array(false,"Alphanum",array("string",array(3,true,false,false)))),
- "text8" =>array("textfield1",array(false,"Alphanum",array("string",array(false,false,false,false)))),
- "integer1" =>array("textfield1",array(true,"integer",array("num",array(0,false,10,false)))),
- "integer2" =>array("textfield1",array(true,"integer",array("num",array(0,true,10,false)))),
- "integer3" =>array("textfield1",array(true,"integer",array("num",array(-5,false,10,false)))),
- "integer4" =>array("textfield1",array(true,"integer",array("num",array(-5,true,10,true)))),
- "integer5" =>array("textfield1",array(false,"integer",array("num",array(-10,true,-5,true)))),
- "float1" =>array("textfield1",array(true,"float",array("num",array(0,false,10,false)))),
- "float2" =>array("textfield1",array(true,"float",array("num",array(0,true,10,false)))),
- "float3" =>array("textfield1",array(true,"float",array("num",array(-5.2,false,10,false)))),
- "float4" =>array("textfield1",array(true,"float",array("num",array(-5.2,true,10.5,true)))),
- "float5" =>array("textfield1",array(false,"float",array("num",array(-5.2,true,10.5,true)))),
- "email1" =>array("textfield1",array(true,"email",array("string",array(3,false,20,false)))),
- "email2" =>array("textfield1",array(true,"email",array("string",array(3,true,10,true)))),
- "email3" =>array("textfield1",array(false,"email",array("string",array(3,true,10,true)))),
- "datech1" =>array("textfield1",array(true,"date_ch",array("date_ch",array(20060101,true,20061231,true)))),
- "datech2" =>array("textfield1",array(true,"date_ch",array("date_ch",array(20060101,true,20061231,true)))),
- "datech3" =>array("textfield1",array(false,"date_ch",array("date_ch",array(20060101,true,20061231,false)))));
-
- public function __construct () {
- parent::__construct($this->local_formats);
- }
-
- public function display_errors() {
- foreach($this->errors as $error) {
- //echo "<br />".$error;
- echo " (".$error.")";
- }
- }
-
- public function empty_errors() {
- $this->errors = array();
- }
-
- public function display_format($format) {
- echo "<br />".$this->get_test_type($format);
- $test_values = $this->get_tests_values($format);
- echo " ----> ";
- if($test_values[0]){echo "obligatoire";}else{echo "facultatif";}
- echo ", ".$test_values[1]." , ";
- $limit = $test_values[2];
- if($limit[1][0] === false && $limit[1][2]== false) {echo " pas de limit";}
- else {
- if($limit[1][0] !== false) {
- echo $limit[1][0]." <";
- if($limit[1][1]) {
- echo "=";
- }
- }
- echo " valeur ";
- if($limit[1][2] !== false) {
- echo "<";
- if($limit[1][3]) {
- echo "=";
- }
- echo " ".$limit[1][2];
- }
- }
- }
-
- }
-
- ?>
- <?//--------------------------------- fichier de test -------------------
-
-
- echo "<br>---------------------- Test de la class Validation_data ---------------------";
-
- require("class.Validation_Data.php");
- require("class.EB_Validation_Data.php");
-
-
- $EB_val = new EB_Validation_Data();
- function local_test_validation($EB_validation,$type,$value) {
- echo "<br />value : ".$value;
- if($EB_validation->valid_format($type,$value)) {
- echo " --> ok";
- } else {
- echo " -->false";
- }
- $EB_validation->display_errors();
- $EB_validation->empty_errors();
- }
-
-
-
- echo "<br />textfield => mandatory,regex,limit";
- echo "<br />------------------------------- text1 --------------------------";
- $EB_val->display_format("text1");
- local_test_validation($EB_val,"text1","");
- local_test_validation($EB_val,"text1","ab");
- local_test_validation($EB_val,"text1","abc");
- local_test_validation($EB_val,"text1","abcdefghi");
- local_test_validation($EB_val,"text1","abcdefghij");
- local_test_validation($EB_val,"text1","abcdefghijk");
- local_test_validation($EB_val,"text1","123456789");
- local_test_validation($EB_val,"text1","1234567891");
- local_test_validation($EB_val,"text1","12345678912");
- local_test_validation($EB_val,"text1","éèà");
- local_test_validation($EB_val,"text1","ÀÁÂÃÄ");
- local_test_validation($EB_val,"text1","ÅÆÇÈÉ");
- local_test_validation($EB_val,"text1","ÊËÌÍ");
- local_test_validation($EB_val,"text1","ÎÏÐÑÒ");
-
- local_test_validation($EB_val,"text1","ÓÔÕÖØ");
- local_test_validation($EB_val,"text1","ÙÚÛÜÝ");
- local_test_validation($EB_val,"text1","Þßàáâ");
- local_test_validation($EB_val,"text1","ãäåæç");
- local_test_validation($EB_val,"text1","èéêëì");
- local_test_validation($EB_val,"text1","íîïðñ");
- local_test_validation($EB_val,"text1","òóôõöøùú");
- local_test_validation($EB_val,"text1","úûýýþÿ");
- echo "<br />------------------------------- text2 --------------------------";
- $EB_val->display_format("text2");
- local_test_validation($EB_val,"text2","");
- local_test_validation($EB_val,"text2","ab");
- local_test_validation($EB_val,"text2","abc");
- local_test_validation($EB_val,"text2","abcdefghi");
- local_test_validation($EB_val,"text2","abcdefghij");
- local_test_validation($EB_val,"text2","abcdefghijk");
- local_test_validation($EB_val,"text2","123456789");
- local_test_validation($EB_val,"text2","1234567891");
- local_test_validation($EB_val,"text2","12345678912");
- local_test_validation($EB_val,"text2","éèà");
- echo "<br />------------------------------- text3 --------------------------";
- $EB_val->display_format("text3");
- local_test_validation($EB_val,"text3","");
- local_test_validation($EB_val,"text3","ab");
- local_test_validation($EB_val,"text3","abc");
- local_test_validation($EB_val,"text3","abcdefghi");
- local_test_validation($EB_val,"text3","abcdefghij");
- local_test_validation($EB_val,"text3","abcdefghijk");
- local_test_validation($EB_val,"text3","123456789");
- local_test_validation($EB_val,"text3","1234567891");
- local_test_validation($EB_val,"text3","12345678912");
- local_test_validation($EB_val,"text3","éèà");
- echo "<br />------------------------------- text4 --------------------------";
- $EB_val->display_format("text4");
- local_test_validation($EB_val,"text4","");
- local_test_validation($EB_val,"text4","ab");
- local_test_validation($EB_val,"text4","abc");
- local_test_validation($EB_val,"text4","abcdefghi");
- local_test_validation($EB_val,"text4","abcdefghij");
- local_test_validation($EB_val,"text4","abcdefghijk");
- local_test_validation($EB_val,"text4","123456789");
- local_test_validation($EB_val,"text4","1234567891");
- local_test_validation($EB_val,"text4","12345678912");
- local_test_validation($EB_val,"text4","éèà");
- echo "<br />------------------------------- text5 --------------------------";
- $EB_val->display_format("text5");
- local_test_validation($EB_val,"text5","");
- local_test_validation($EB_val,"text5","ab");
- local_test_validation($EB_val,"text5","abc");
- local_test_validation($EB_val,"text5","abcdefghi");
- local_test_validation($EB_val,"text5","abcdefghij");
- local_test_validation($EB_val,"text5","abcdefghijk");
- local_test_validation($EB_val,"text5","123456789");
- local_test_validation($EB_val,"text5","1234567891");
- local_test_validation($EB_val,"text5","12345678912");
- local_test_validation($EB_val,"text5","éèà");
- echo "<br />------------------------------- text6 --------------------------";
- $EB_val->display_format("text6");
- local_test_validation($EB_val,"text6","");
- local_test_validation($EB_val,"text6","ab");
- local_test_validation($EB_val,"text6","abc");
- local_test_validation($EB_val,"text6","abcdefghi");
- local_test_validation($EB_val,"text6","abcdefghij");
- local_test_validation($EB_val,"text6","abcdefghijk");
- local_test_validation($EB_val,"text6","123456789");
- local_test_validation($EB_val,"text6","1234567891");
- local_test_validation($EB_val,"text6","12345678912");
- local_test_validation($EB_val,"text6","éèà");
- local_test_validation($EB_val,"text6","abc");
- local_test_validation($EB_val,"text6","abc");
- echo "<br />------------------------------- text7 --------------------------";
- $EB_val->display_format("text7");
- local_test_validation($EB_val,"text7","");
- local_test_validation($EB_val,"text7","ab");
- local_test_validation($EB_val,"text7","abc");
- local_test_validation($EB_val,"text7","abcdefghi");
- local_test_validation($EB_val,"text7","abcdefghij");
- local_test_validation($EB_val,"text7","abcdefghijk");
- local_test_validation($EB_val,"text7","123456789");
- local_test_validation($EB_val,"text7","1234567891");
- local_test_validation($EB_val,"text7","12345678912");
- local_test_validation($EB_val,"text7","éèà");
- local_test_validation($EB_val,"text7","abc");
- local_test_validation($EB_val,"text7","abc");
- echo "<br />------------------------------- text8 --------------------------";
- $EB_val->display_format("text8");
- local_test_validation($EB_val,"text8","");
- local_test_validation($EB_val,"text8","ab");
- local_test_validation($EB_val,"text8","abc");
- local_test_validation($EB_val,"text8","abcdefghi");
- local_test_validation($EB_val,"text8","abcdefghij");
- local_test_validation($EB_val,"text8","abcdefghijk");
- local_test_validation($EB_val,"text8","123456789");
- local_test_validation($EB_val,"text8","1234567891");
- local_test_validation($EB_val,"text8","12345678912");
- local_test_validation($EB_val,"text8","éèà");
- local_test_validation($EB_val,"text8","abc");
- local_test_validation($EB_val,"text8","abc");
- local_test_validation($EB_val,"text8","abc");
-
- echo "<br />------------------------------- integer1 --------------------------";
- $EB_val->display_format("integer1");
- local_test_validation($EB_val,"integer1","");
- local_test_validation($EB_val,"integer1","0");
- local_test_validation($EB_val,"integer1","1");
- local_test_validation($EB_val,"integer1","9");
- local_test_validation($EB_val,"integer1","10");
- local_test_validation($EB_val,"integer1","-1");
- local_test_validation($EB_val,"integer1","11");
- local_test_validation($EB_val,"integer1","+5");
- local_test_validation($EB_val,"integer1",+5);
- local_test_validation($EB_val,"integer1",-3);
- local_test_validation($EB_val,"integer1",3.23);
- local_test_validation($EB_val,"integer1","-10");
- local_test_validation($EB_val,"integer1","10'000");
- local_test_validation($EB_val,"integer1","10'00");
- local_test_validation($EB_val,"integer1","10.000");
- local_test_validation($EB_val,"integer1","10,000");
- local_test_validation($EB_val,"integer1","10.000");
- local_test_validation($EB_val,"integer1","10 000");
- local_test_validation($EB_val,"integer1","10^5");
- echo "<br />------------------------------- integer2 --------------------------";
- $EB_val->display_format("integer2");
- local_test_validation($EB_val,"integer2","");
- local_test_validation($EB_val,"integer2","0");
- local_test_validation($EB_val,"integer2","1");
- local_test_validation($EB_val,"integer2","9");
- local_test_validation($EB_val,"integer2","10");
- local_test_validation($EB_val,"integer2","-1");
- local_test_validation($EB_val,"integer2","11");
- local_test_validation($EB_val,"integer2","+5");
- local_test_validation($EB_val,"integer2",+5);
- local_test_validation($EB_val,"integer2",-3);
- local_test_validation($EB_val,"integer2",3.23);
- local_test_validation($EB_val,"integer2","-10");
- local_test_validation($EB_val,"integer2","10'000");
- local_test_validation($EB_val,"integer2","10'00");
- local_test_validation($EB_val,"integer2","10.000");
- local_test_validation($EB_val,"integer2","10,000");
- local_test_validation($EB_val,"integer2","10.000");
- local_test_validation($EB_val,"integer2","10 000");
- local_test_validation($EB_val,"integer2","10^5");
- echo "<br />------------------------------- integer3 --------------------------";
- $EB_val->display_format("integer3");
- local_test_validation($EB_val,"integer3","");
- local_test_validation($EB_val,"integer3","0");
- local_test_validation($EB_val,"integer3","1");
- local_test_validation($EB_val,"integer3","9");
- local_test_validation($EB_val,"integer3","10");
- local_test_validation($EB_val,"integer3","-1");
- local_test_validation($EB_val,"integer3","11");
- local_test_validation($EB_val,"integer3","+5");
- local_test_validation($EB_val,"integer3",+5);
- local_test_validation($EB_val,"integer3",-3);
- local_test_validation($EB_val,"integer3",3.23);
- local_test_validation($EB_val,"integer3","-10");
- local_test_validation($EB_val,"integer3","10'000");
- local_test_validation($EB_val,"integer3","10'00");
- local_test_validation($EB_val,"integer3","10.000");
- local_test_validation($EB_val,"integer3","10,000");
- local_test_validation($EB_val,"integer3","10.000");
- local_test_validation($EB_val,"integer3","10 000");
- local_test_validation($EB_val,"integer3","10^5");
- echo "<br />------------------------------- integer4 --------------------------";
- $EB_val->display_format("integer4");
- local_test_validation($EB_val,"integer4","");
- local_test_validation($EB_val,"integer4","0");
- local_test_validation($EB_val,"integer4","1");
- local_test_validation($EB_val,"integer4","9");
- local_test_validation($EB_val,"integer4","10");
- local_test_validation($EB_val,"integer4","-1");
- local_test_validation($EB_val,"integer4","11");
- local_test_validation($EB_val,"integer4","+5");
- local_test_validation($EB_val,"integer4",+5);
- local_test_validation($EB_val,"integer4",-3);
- local_test_validation($EB_val,"integer4",3.23);
- local_test_validation($EB_val,"integer4","-10");
- local_test_validation($EB_val,"integer4","10'000");
- local_test_validation($EB_val,"integer4","10'00");
- local_test_validation($EB_val,"integer4","10.000");
- local_test_validation($EB_val,"integer4","10,000");
- local_test_validation($EB_val,"integer4","10.000");
- local_test_validation($EB_val,"integer4","10 000");
- local_test_validation($EB_val,"integer4","10^5");
- echo "<br />------------------------------- integer5 --------------------------";
- $EB_val->display_format("integer5");
- local_test_validation($EB_val,"integer5","");
- local_test_validation($EB_val,"integer5","0");
- local_test_validation($EB_val,"integer5","1");
- local_test_validation($EB_val,"integer5","9");
- local_test_validation($EB_val,"integer5","10");
- local_test_validation($EB_val,"integer5","-1");
- local_test_validation($EB_val,"integer5","11");
- local_test_validation($EB_val,"integer5","+5");
- local_test_validation($EB_val,"integer5",+5);
- local_test_validation($EB_val,"integer5",-3);
- local_test_validation($EB_val,"integer5",3.23);
- local_test_validation($EB_val,"integer5","-10");
- local_test_validation($EB_val,"integer5","10'000");
- local_test_validation($EB_val,"integer5","10'00");
- local_test_validation($EB_val,"integer5","10.000");
- local_test_validation($EB_val,"integer5","10,000");
- local_test_validation($EB_val,"integer5","10.000");
- local_test_validation($EB_val,"integer5","10 000");
- local_test_validation($EB_val,"integer5","10^5");
-
- echo "<br />------------------------------- float1 --------------------------";
- $EB_val->display_format("float1");
- local_test_validation($EB_val,"float1","");
- local_test_validation($EB_val,"float1","0");
- local_test_validation($EB_val,"float1","1");
- local_test_validation($EB_val,"float1","9");
- local_test_validation($EB_val,"float1","9.02");
- local_test_validation($EB_val,"float1","9,02");
- local_test_validation($EB_val,"float1","9.0.0");
- local_test_validation($EB_val,"float1","10");
- local_test_validation($EB_val,"float1","-1");
- local_test_validation($EB_val,"float1","11");
- local_test_validation($EB_val,"float1","+5");
- local_test_validation($EB_val,"float1",+5);
- local_test_validation($EB_val,"float1",-3);
- local_test_validation($EB_val,"float1",3.23);
- local_test_validation($EB_val,"float1","-10");
- local_test_validation($EB_val,"float1","10'000");
- local_test_validation($EB_val,"float1","10'00");
- local_test_validation($EB_val,"float1","10.000");
- local_test_validation($EB_val,"float1","10,000");
- local_test_validation($EB_val,"float1","10.000");
- local_test_validation($EB_val,"float1","10 000");
- local_test_validation($EB_val,"float1","10^5");
- echo "<br />------------------------------- email1 --------------------------";
- $EB_val->display_format("email1");
- local_test_validation($EB_val,"email1","");
- local_test_validation($EB_val,"email1","e.e@sdf.gt");
- local_test_validation($EB_val,"email1","e_e@frresd.fr");
- local_test_validation($EB_val,"email1","e-df@sdfdsf.de");
- local_test_validation($EB_val,"email1","sdf@ds.fr");
- local_test_validation($EB_val,"email1","dsfsd@.fr");
- local_test_validation($EB_val,"email1","erfre@.frf");
- local_test_validation($EB_val,"email1","sdff@d..fr");
- local_test_validation($EB_val,"email1","ssf..ssd@sdf.fr");
- local_test_validation($EB_val,"email1",".sdfd@sdf.fr");
- local_test_validation($EB_val,"email1","2dfdsf@sdf.fr");
- local_test_validation($EB_val,"email1","-dfsd@df.gt");
- local_test_validation($EB_val,"email1","_sdfdsf@sdff.fr");
- local_test_validation($EB_val,"email1","dfgfd@df.22");
- local_test_validation($EB_val,"email1","sdfdsf@sdf.AA");
- local_test_validation($EB_val,"email1","QQQQ@AA.SS");
- local_test_validation($EB_val,"email1","e.e@sdf.gtd");
- local_test_validation($EB_val,"email1","e.e@sdf.gtv");
- local_test_validation($EB_val,"email1","e.e@sdf.g2v");
-
- echo "<br />------------------------------- datech1 --------------------------";
- $EB_val->display_format("datech1");
- local_test_validation($EB_val,"email1","");
- local_test_validation($EB_val,"datech1","01.01.2006");
- local_test_validation($EB_val,"datech1","16.07.2006");
- local_test_validation($EB_val,"datech1","31.12.2006");
- local_test_validation($EB_val,"datech1","00.01.2006");
- local_test_validation($EB_val,"datech1","00.12.006");
- local_test_validation($EB_val,"datech1","01.13.2006");
- local_test_validation($EB_val,"datech1","01.00.2006");
- local_test_validation($EB_val,"datech1","30.02.2006");
- local_test_validation($EB_val,"datech1","01.01.20060");
- local_test_validation($EB_val,"datech1","01/01/2006");
- local_test_validation($EB_val,"datech1","01012006");
- local_test_validation($EB_val,"datech1","01-01-2006");
-
- //erreurs trouvées :
- // format Alphanum accepté pour "ÅÆÇÈÉ"
-
- //strlen ("ÅÆÇÈÉ") == 10
-
-
- ?>
<?//----------------------- classe mère --------------------------------------
class Validation_Data_Exception extends Exception {
const ERROR_FORMAT_NOT_DEFINED = 'format type not defined';
const ERROR_FORMAT_ILL_DEFINED = 'format ill-defined';
const ERROR_REGEX_TYPE_NOT_DEFINED = 'regex type not defined';
const ERROR_LIMIT_TYPE_NOT_DEFINED = 'limit type not defined';
const ERROR_LIMIT_MIN_MAX = 'limit min max error';
public function __construct($msg, $code = 0) {
parent::__construct($msg, $code);
}
}
abstract Class Validation_Data
{
//formats contain tests_type
protected $formats;
//tests_type contain tests
protected $test_type = array("textfield1"=>array("mandatory","regex","limit"));
//mandatory(true|false)
//regex('Alphanum'|'integer'|'float'|'date_ch'|'email')
//limit('num'|'string' ; (integer|false ; true|false ; integer|false ; true|false))
//validation errors
protected $errors;
protected function __construct ($formats) {
$this->formats = $formats;
$this->errors = array();
}
function valid_format($format,$value) {
$return = true;
$tests = $this->get_tests($format);
$tests_values = $this->get_tests_values($format);
if(count($tests) == count($tests_values)) {
for($i=0;$i<count($tests);$i++) {
$temp_return = $this->valid_test($tests[$i],$tests_values[$i],$value);
$return = $return && $temp_return["return"];
if($temp_return["break"]) {
break;
}
}
return $return;
} else {
throw new Validation_Data_Exception (Validation_Data_Exception::ERROR_FORMAT_ILL_DEFINED);
}
}
protected function get_test_type($format) {
if(isset($this->formats[$format][0])) {
$test_type = $this->formats[$format][0];
return $test_type;
} else {
throw new Validation_Data_Exception (Validation_Data_Exception::ERROR_FORMAT_NOT_DEFINED);
}
}
protected function get_tests($format) {
$test_type = $this->get_test_type($format);
if(isset($this->test_type[$test_type])) {
$tests = $this->test_type[$test_type];
return $tests;
} else {
throw new Validation_Data_Exception (Validation_Data_Exception::ERROR_FORMAT_NOT_DEFINED);
}
}
protected function get_tests_values($format) {
if(isset($this->formats[$format][1])) {
return $this->formats[$format][1];
} else {
throw new Validation_Data_Exception (Validation_Data_Exception::ERROR_FORMAT_NOT_DEFINED);
}
}
function valid_test($test_type,$test_values,$value) {
switch($test_type) {
case "mandatory":
$return = $this->valid_mandatory($test_values,$value);
break;
case "regex":
$return = $this->valid_regex($test_values,$value);
break;
case "limit":
$return = $this->valid_limit($test_values,$value);
break;
}
return $return;
}
private function valid_regex($type,$value) {
$return = false;
switch($type) {
case "Alphanum":
$return = preg_match("/^[^<>\\=]+$/", $value);
if($return == false) {
array_push($this->errors, "format.Alphanum.error");
}
break;
case "integer":
//[-]12456789
$return = preg_match("/^[\-]?[0-9]+$/", $value);
if($return == false) {
array_push($this->errors, "format.integer.error");
}
break;
case "float":
$return = preg_match("/^[\-|\+]?[0-9]+[\.]?[0-9]*?$/", $value);
if($return == false) {
array_push($this->errors, "format.float.error");
}
break;
case "date_ch":
//jj.mm.aaaa
$return = preg_match("/^[0-9]{1,2}\.[0-9]{1,2}\.[0-9]{4}$/", $value);
if($return) {
$return = checkdate(substr($value,3,2),substr($value,0,2),substr($value,6,4));
}
if($return == false) {
array_push($this->errors, "format.date_ch.error");
}
break;
case "email":
//$return = preg_match("/^[a-zA-Z0-9|\-|\.|\_]+[@][a-zA-Z0-9|\-|\.\_]+[\.]{1}[a-zA-Z]{2,}$/", $value);
$return = filter_var($value, FILTER_VALIDATE_EMAIL);
if($return == false) {
array_push($this->errors, "format.email.error");
}
break;
default:
throw new Validation_Data_Exception (Validation_Data_Exception::ERROR_REGEX_TYPE_NOT_DEFINED);
break;
}
return array("return"=>$return,"break"=>!$return);
}
private function valid_limit($limit,$value) {
$limit_type = $limit[0];
$limit_min = $limit[1][0];
$limit_min_inclusive = $limit[1][1];
$limit_max = $limit[1][2];
$limit_max_inclusive = $limit[1][3];
if(!($limit_min > $limit_max && $limit_min != false && $limit_max != false)) {
switch($limit_type) {
/* first arg must a valid type of field to continue validation */
case "string":
$return = $this->valid_limit_string($value,$limit_min,$limit_min_inclusive,$limit_max,$limit_max_inclusive);
break;
case "num":
$return = $this->valid_limit_num($value,$limit_min,$limit_min_inclusive,$limit_max,$limit_max_inclusive);
break;
case "date_ch":
$date = substr($value,6,4).substr($value,3,2).substr($value,0,2);
$return = $this->valid_limit_num($date,$limit_min,$limit_min_inclusive,$limit_max,$limit_max_inclusive);
break;
default:
throw new Validation_Data_Exception (Validation_Data_Exception::ERROR_LIMIT_TYPE_NOT_DEFINED);
break;
}
if(!$return) {
array_push($this->errors, "limit.error");
}
return array("return"=>$return,"break"=>false);
} else {
throw new Validation_Data_Exception (Validation_Data_Exception::ERROR_LIMIT_MIN_MAX);
}
}
function valid_limit_string($value,$value_min,$value_min_inclusive,$value_max,$value_max_inclusive) {
$result = $this->valid_limit_num(strlen($value),$value_min,$value_min_inclusive,$value_max,$value_max_inclusive);
return $result;
}
function valid_limit_num($value,$value_min,$value_min_inclusive,$value_max,$value_max_inclusive) {
$result = false;
$bitmask = ($value_min !== false)
+ (($value_min_inclusive !== false) * 2)
+ (($value_max !== false) * 4)
+ (($value_max_inclusive !== false) * 8);
switch($bitmask) {
// check min value only
case 1:
$result = ($value > $value_min);
break;
// check min or equal value only
case 3:
$result = ($value >= $value_min);
break;
// check max value only
case 4:
$result = ($value < $value_max);
break;
// check min and max value only
case 5:
$result = ($value > $value_min) & ($value < $value_max);
break;
// check max or equal value only
case 12:
$result = ($value <= $value_max);
break;
// check min or equal and max value
case 7:
$result = ($value >= $value_min) & ($value < $value_max);
break;
// check min and max or equal only
case 13:
$result = ($value > $value_min) & ($value <= $value_max);
break;
// check min or equal and max or equal value
case 15:
$result = ($value >= $value_min) & ($value <= $value_max);
break;
} // end switch
return $result;
}
function valid_mandatory($test_value, $value) {
$return = array("return"=>false,"break"=>false);
//if (is mandatory)
if($test_value) {
if($value == "") {
array_push($this->errors, "mandatory.error");
$return = array("return"=>false,"break"=>true);
} else {
$return = array("return"=>true,"break"=>false);
}
}//if isn t mandatory
else {
if($value == "") {
$return = array("return"=>true,"break"=>true);
} else {
$return = array("return"=>true,"break"=>false);
}
}
return $return;
}
}
?>
<?
//----------------------------------- sous class ------------------------------
Class EB_Validation_Data extends Validation_Data
{
private $local_formats = array(
"text1" =>array("textfield1",array(true,"Alphanum",array("string",array(3,false,10,false)))),
"text2" =>array("textfield1",array(true,"Alphanum",array("string",array(3,true,10,false)))),
"text3" =>array("textfield1",array(true,"Alphanum",array("string",array(3,false,10,true)))),
"text4" =>array("textfield1",array(false,"Alphanum",array("string",array(3,true,10,true)))),
"text5" =>array("textfield1",array(false,"Alphanum",array("string",array(false,false,10,false)))),
"text6" =>array("textfield1",array(false,"Alphanum",array("string",array(3,false,false,false)))),
"text7" =>array("textfield1",array(false,"Alphanum",array("string",array(3,true,false,false)))),
"text8" =>array("textfield1",array(false,"Alphanum",array("string",array(false,false,false,false)))),
"integer1" =>array("textfield1",array(true,"integer",array("num",array(0,false,10,false)))),
"integer2" =>array("textfield1",array(true,"integer",array("num",array(0,true,10,false)))),
"integer3" =>array("textfield1",array(true,"integer",array("num",array(-5,false,10,false)))),
"integer4" =>array("textfield1",array(true,"integer",array("num",array(-5,true,10,true)))),
"integer5" =>array("textfield1",array(false,"integer",array("num",array(-10,true,-5,true)))),
"float1" =>array("textfield1",array(true,"float",array("num",array(0,false,10,false)))),
"float2" =>array("textfield1",array(true,"float",array("num",array(0,true,10,false)))),
"float3" =>array("textfield1",array(true,"float",array("num",array(-5.2,false,10,false)))),
"float4" =>array("textfield1",array(true,"float",array("num",array(-5.2,true,10.5,true)))),
"float5" =>array("textfield1",array(false,"float",array("num",array(-5.2,true,10.5,true)))),
"email1" =>array("textfield1",array(true,"email",array("string",array(3,false,20,false)))),
"email2" =>array("textfield1",array(true,"email",array("string",array(3,true,10,true)))),
"email3" =>array("textfield1",array(false,"email",array("string",array(3,true,10,true)))),
"datech1" =>array("textfield1",array(true,"date_ch",array("date_ch",array(20060101,true,20061231,true)))),
"datech2" =>array("textfield1",array(true,"date_ch",array("date_ch",array(20060101,true,20061231,true)))),
"datech3" =>array("textfield1",array(false,"date_ch",array("date_ch",array(20060101,true,20061231,false)))));
public function __construct () {
parent::__construct($this->local_formats);
}
public function display_errors() {
foreach($this->errors as $error) {
//echo "<br />".$error;
echo " (".$error.")";
}
}
public function empty_errors() {
$this->errors = array();
}
public function display_format($format) {
echo "<br />".$this->get_test_type($format);
$test_values = $this->get_tests_values($format);
echo " ----> ";
if($test_values[0]){echo "obligatoire";}else{echo "facultatif";}
echo ", ".$test_values[1]." , ";
$limit = $test_values[2];
if($limit[1][0] === false && $limit[1][2]== false) {echo " pas de limit";}
else {
if($limit[1][0] !== false) {
echo $limit[1][0]." <";
if($limit[1][1]) {
echo "=";
}
}
echo " valeur ";
if($limit[1][2] !== false) {
echo "<";
if($limit[1][3]) {
echo "=";
}
echo " ".$limit[1][2];
}
}
}
}
?>
<?//--------------------------------- fichier de test -------------------
echo "<br>---------------------- Test de la class Validation_data ---------------------";
require("class.Validation_Data.php");
require("class.EB_Validation_Data.php");
$EB_val = new EB_Validation_Data();
function local_test_validation($EB_validation,$type,$value) {
echo "<br />value : ".$value;
if($EB_validation->valid_format($type,$value)) {
echo " --> ok";
} else {
echo " -->false";
}
$EB_validation->display_errors();
$EB_validation->empty_errors();
}
echo "<br />textfield => mandatory,regex,limit";
echo "<br />------------------------------- text1 --------------------------";
$EB_val->display_format("text1");
local_test_validation($EB_val,"text1","");
local_test_validation($EB_val,"text1","ab");
local_test_validation($EB_val,"text1","abc");
local_test_validation($EB_val,"text1","abcdefghi");
local_test_validation($EB_val,"text1","abcdefghij");
local_test_validation($EB_val,"text1","abcdefghijk");
local_test_validation($EB_val,"text1","123456789");
local_test_validation($EB_val,"text1","1234567891");
local_test_validation($EB_val,"text1","12345678912");
local_test_validation($EB_val,"text1","éèà");
local_test_validation($EB_val,"text1","ÀÁÂÃÄ");
local_test_validation($EB_val,"text1","ÅÆÇÈÉ");
local_test_validation($EB_val,"text1","ÊËÌÍ");
local_test_validation($EB_val,"text1","ÎÏÐÑÒ");
local_test_validation($EB_val,"text1","ÓÔÕÖØ");
local_test_validation($EB_val,"text1","ÙÚÛÜÝ");
local_test_validation($EB_val,"text1","Þßàáâ");
local_test_validation($EB_val,"text1","ãäåæç");
local_test_validation($EB_val,"text1","èéêëì");
local_test_validation($EB_val,"text1","íîïðñ");
local_test_validation($EB_val,"text1","òóôõöøùú");
local_test_validation($EB_val,"text1","úûýýþÿ");
echo "<br />------------------------------- text2 --------------------------";
$EB_val->display_format("text2");
local_test_validation($EB_val,"text2","");
local_test_validation($EB_val,"text2","ab");
local_test_validation($EB_val,"text2","abc");
local_test_validation($EB_val,"text2","abcdefghi");
local_test_validation($EB_val,"text2","abcdefghij");
local_test_validation($EB_val,"text2","abcdefghijk");
local_test_validation($EB_val,"text2","123456789");
local_test_validation($EB_val,"text2","1234567891");
local_test_validation($EB_val,"text2","12345678912");
local_test_validation($EB_val,"text2","éèà");
echo "<br />------------------------------- text3 --------------------------";
$EB_val->display_format("text3");
local_test_validation($EB_val,"text3","");
local_test_validation($EB_val,"text3","ab");
local_test_validation($EB_val,"text3","abc");
local_test_validation($EB_val,"text3","abcdefghi");
local_test_validation($EB_val,"text3","abcdefghij");
local_test_validation($EB_val,"text3","abcdefghijk");
local_test_validation($EB_val,"text3","123456789");
local_test_validation($EB_val,"text3","1234567891");
local_test_validation($EB_val,"text3","12345678912");
local_test_validation($EB_val,"text3","éèà");
echo "<br />------------------------------- text4 --------------------------";
$EB_val->display_format("text4");
local_test_validation($EB_val,"text4","");
local_test_validation($EB_val,"text4","ab");
local_test_validation($EB_val,"text4","abc");
local_test_validation($EB_val,"text4","abcdefghi");
local_test_validation($EB_val,"text4","abcdefghij");
local_test_validation($EB_val,"text4","abcdefghijk");
local_test_validation($EB_val,"text4","123456789");
local_test_validation($EB_val,"text4","1234567891");
local_test_validation($EB_val,"text4","12345678912");
local_test_validation($EB_val,"text4","éèà");
echo "<br />------------------------------- text5 --------------------------";
$EB_val->display_format("text5");
local_test_validation($EB_val,"text5","");
local_test_validation($EB_val,"text5","ab");
local_test_validation($EB_val,"text5","abc");
local_test_validation($EB_val,"text5","abcdefghi");
local_test_validation($EB_val,"text5","abcdefghij");
local_test_validation($EB_val,"text5","abcdefghijk");
local_test_validation($EB_val,"text5","123456789");
local_test_validation($EB_val,"text5","1234567891");
local_test_validation($EB_val,"text5","12345678912");
local_test_validation($EB_val,"text5","éèà");
echo "<br />------------------------------- text6 --------------------------";
$EB_val->display_format("text6");
local_test_validation($EB_val,"text6","");
local_test_validation($EB_val,"text6","ab");
local_test_validation($EB_val,"text6","abc");
local_test_validation($EB_val,"text6","abcdefghi");
local_test_validation($EB_val,"text6","abcdefghij");
local_test_validation($EB_val,"text6","abcdefghijk");
local_test_validation($EB_val,"text6","123456789");
local_test_validation($EB_val,"text6","1234567891");
local_test_validation($EB_val,"text6","12345678912");
local_test_validation($EB_val,"text6","éèà");
local_test_validation($EB_val,"text6","abc");
local_test_validation($EB_val,"text6","abc");
echo "<br />------------------------------- text7 --------------------------";
$EB_val->display_format("text7");
local_test_validation($EB_val,"text7","");
local_test_validation($EB_val,"text7","ab");
local_test_validation($EB_val,"text7","abc");
local_test_validation($EB_val,"text7","abcdefghi");
local_test_validation($EB_val,"text7","abcdefghij");
local_test_validation($EB_val,"text7","abcdefghijk");
local_test_validation($EB_val,"text7","123456789");
local_test_validation($EB_val,"text7","1234567891");
local_test_validation($EB_val,"text7","12345678912");
local_test_validation($EB_val,"text7","éèà");
local_test_validation($EB_val,"text7","abc");
local_test_validation($EB_val,"text7","abc");
echo "<br />------------------------------- text8 --------------------------";
$EB_val->display_format("text8");
local_test_validation($EB_val,"text8","");
local_test_validation($EB_val,"text8","ab");
local_test_validation($EB_val,"text8","abc");
local_test_validation($EB_val,"text8","abcdefghi");
local_test_validation($EB_val,"text8","abcdefghij");
local_test_validation($EB_val,"text8","abcdefghijk");
local_test_validation($EB_val,"text8","123456789");
local_test_validation($EB_val,"text8","1234567891");
local_test_validation($EB_val,"text8","12345678912");
local_test_validation($EB_val,"text8","éèà");
local_test_validation($EB_val,"text8","abc");
local_test_validation($EB_val,"text8","abc");
local_test_validation($EB_val,"text8","abc");
echo "<br />------------------------------- integer1 --------------------------";
$EB_val->display_format("integer1");
local_test_validation($EB_val,"integer1","");
local_test_validation($EB_val,"integer1","0");
local_test_validation($EB_val,"integer1","1");
local_test_validation($EB_val,"integer1","9");
local_test_validation($EB_val,"integer1","10");
local_test_validation($EB_val,"integer1","-1");
local_test_validation($EB_val,"integer1","11");
local_test_validation($EB_val,"integer1","+5");
local_test_validation($EB_val,"integer1",+5);
local_test_validation($EB_val,"integer1",-3);
local_test_validation($EB_val,"integer1",3.23);
local_test_validation($EB_val,"integer1","-10");
local_test_validation($EB_val,"integer1","10'000");
local_test_validation($EB_val,"integer1","10'00");
local_test_validation($EB_val,"integer1","10.000");
local_test_validation($EB_val,"integer1","10,000");
local_test_validation($EB_val,"integer1","10.000");
local_test_validation($EB_val,"integer1","10 000");
local_test_validation($EB_val,"integer1","10^5");
echo "<br />------------------------------- integer2 --------------------------";
$EB_val->display_format("integer2");
local_test_validation($EB_val,"integer2","");
local_test_validation($EB_val,"integer2","0");
local_test_validation($EB_val,"integer2","1");
local_test_validation($EB_val,"integer2","9");
local_test_validation($EB_val,"integer2","10");
local_test_validation($EB_val,"integer2","-1");
local_test_validation($EB_val,"integer2","11");
local_test_validation($EB_val,"integer2","+5");
local_test_validation($EB_val,"integer2",+5);
local_test_validation($EB_val,"integer2",-3);
local_test_validation($EB_val,"integer2",3.23);
local_test_validation($EB_val,"integer2","-10");
local_test_validation($EB_val,"integer2","10'000");
local_test_validation($EB_val,"integer2","10'00");
local_test_validation($EB_val,"integer2","10.000");
local_test_validation($EB_val,"integer2","10,000");
local_test_validation($EB_val,"integer2","10.000");
local_test_validation($EB_val,"integer2","10 000");
local_test_validation($EB_val,"integer2","10^5");
echo "<br />------------------------------- integer3 --------------------------";
$EB_val->display_format("integer3");
local_test_validation($EB_val,"integer3","");
local_test_validation($EB_val,"integer3","0");
local_test_validation($EB_val,"integer3","1");
local_test_validation($EB_val,"integer3","9");
local_test_validation($EB_val,"integer3","10");
local_test_validation($EB_val,"integer3","-1");
local_test_validation($EB_val,"integer3","11");
local_test_validation($EB_val,"integer3","+5");
local_test_validation($EB_val,"integer3",+5);
local_test_validation($EB_val,"integer3",-3);
local_test_validation($EB_val,"integer3",3.23);
local_test_validation($EB_val,"integer3","-10");
local_test_validation($EB_val,"integer3","10'000");
local_test_validation($EB_val,"integer3","10'00");
local_test_validation($EB_val,"integer3","10.000");
local_test_validation($EB_val,"integer3","10,000");
local_test_validation($EB_val,"integer3","10.000");
local_test_validation($EB_val,"integer3","10 000");
local_test_validation($EB_val,"integer3","10^5");
echo "<br />------------------------------- integer4 --------------------------";
$EB_val->display_format("integer4");
local_test_validation($EB_val,"integer4","");
local_test_validation($EB_val,"integer4","0");
local_test_validation($EB_val,"integer4","1");
local_test_validation($EB_val,"integer4","9");
local_test_validation($EB_val,"integer4","10");
local_test_validation($EB_val,"integer4","-1");
local_test_validation($EB_val,"integer4","11");
local_test_validation($EB_val,"integer4","+5");
local_test_validation($EB_val,"integer4",+5);
local_test_validation($EB_val,"integer4",-3);
local_test_validation($EB_val,"integer4",3.23);
local_test_validation($EB_val,"integer4","-10");
local_test_validation($EB_val,"integer4","10'000");
local_test_validation($EB_val,"integer4","10'00");
local_test_validation($EB_val,"integer4","10.000");
local_test_validation($EB_val,"integer4","10,000");
local_test_validation($EB_val,"integer4","10.000");
local_test_validation($EB_val,"integer4","10 000");
local_test_validation($EB_val,"integer4","10^5");
echo "<br />------------------------------- integer5 --------------------------";
$EB_val->display_format("integer5");
local_test_validation($EB_val,"integer5","");
local_test_validation($EB_val,"integer5","0");
local_test_validation($EB_val,"integer5","1");
local_test_validation($EB_val,"integer5","9");
local_test_validation($EB_val,"integer5","10");
local_test_validation($EB_val,"integer5","-1");
local_test_validation($EB_val,"integer5","11");
local_test_validation($EB_val,"integer5","+5");
local_test_validation($EB_val,"integer5",+5);
local_test_validation($EB_val,"integer5",-3);
local_test_validation($EB_val,"integer5",3.23);
local_test_validation($EB_val,"integer5","-10");
local_test_validation($EB_val,"integer5","10'000");
local_test_validation($EB_val,"integer5","10'00");
local_test_validation($EB_val,"integer5","10.000");
local_test_validation($EB_val,"integer5","10,000");
local_test_validation($EB_val,"integer5","10.000");
local_test_validation($EB_val,"integer5","10 000");
local_test_validation($EB_val,"integer5","10^5");
echo "<br />------------------------------- float1 --------------------------";
$EB_val->display_format("float1");
local_test_validation($EB_val,"float1","");
local_test_validation($EB_val,"float1","0");
local_test_validation($EB_val,"float1","1");
local_test_validation($EB_val,"float1","9");
local_test_validation($EB_val,"float1","9.02");
local_test_validation($EB_val,"float1","9,02");
local_test_validation($EB_val,"float1","9.0.0");
local_test_validation($EB_val,"float1","10");
local_test_validation($EB_val,"float1","-1");
local_test_validation($EB_val,"float1","11");
local_test_validation($EB_val,"float1","+5");
local_test_validation($EB_val,"float1",+5);
local_test_validation($EB_val,"float1",-3);
local_test_validation($EB_val,"float1",3.23);
local_test_validation($EB_val,"float1","-10");
local_test_validation($EB_val,"float1","10'000");
local_test_validation($EB_val,"float1","10'00");
local_test_validation($EB_val,"float1","10.000");
local_test_validation($EB_val,"float1","10,000");
local_test_validation($EB_val,"float1","10.000");
local_test_validation($EB_val,"float1","10 000");
local_test_validation($EB_val,"float1","10^5");
echo "<br />------------------------------- email1 --------------------------";
$EB_val->display_format("email1");
local_test_validation($EB_val,"email1","");
local_test_validation($EB_val,"email1","e.e@sdf.gt");
local_test_validation($EB_val,"email1","e_e@frresd.fr");
local_test_validation($EB_val,"email1","e-df@sdfdsf.de");
local_test_validation($EB_val,"email1","sdf@ds.fr");
local_test_validation($EB_val,"email1","dsfsd@.fr");
local_test_validation($EB_val,"email1","erfre@.frf");
local_test_validation($EB_val,"email1","sdff@d..fr");
local_test_validation($EB_val,"email1","ssf..ssd@sdf.fr");
local_test_validation($EB_val,"email1",".sdfd@sdf.fr");
local_test_validation($EB_val,"email1","2dfdsf@sdf.fr");
local_test_validation($EB_val,"email1","-dfsd@df.gt");
local_test_validation($EB_val,"email1","_sdfdsf@sdff.fr");
local_test_validation($EB_val,"email1","dfgfd@df.22");
local_test_validation($EB_val,"email1","sdfdsf@sdf.AA");
local_test_validation($EB_val,"email1","QQQQ@AA.SS");
local_test_validation($EB_val,"email1","e.e@sdf.gtd");
local_test_validation($EB_val,"email1","e.e@sdf.gtv");
local_test_validation($EB_val,"email1","e.e@sdf.g2v");
echo "<br />------------------------------- datech1 --------------------------";
$EB_val->display_format("datech1");
local_test_validation($EB_val,"email1","");
local_test_validation($EB_val,"datech1","01.01.2006");
local_test_validation($EB_val,"datech1","16.07.2006");
local_test_validation($EB_val,"datech1","31.12.2006");
local_test_validation($EB_val,"datech1","00.01.2006");
local_test_validation($EB_val,"datech1","00.12.006");
local_test_validation($EB_val,"datech1","01.13.2006");
local_test_validation($EB_val,"datech1","01.00.2006");
local_test_validation($EB_val,"datech1","30.02.2006");
local_test_validation($EB_val,"datech1","01.01.20060");
local_test_validation($EB_val,"datech1","01/01/2006");
local_test_validation($EB_val,"datech1","01012006");
local_test_validation($EB_val,"datech1","01-01-2006");
//erreurs trouvées :
// format Alphanum accepté pour "ÅÆÇÈÉ"
//strlen ("ÅÆÇÈÉ") == 10
?>
Conclusion
Les formats proposés peuvent etre changé ou ajouté a souhait. D'ailleurs si vous connaissez une regular expression exact pour les adress mail je suis preneur car il y a quelques erreurs dans la mienne.
J attends vos remarques et vos impressions.
N'hesitez pas a me dire comment ameliorer mon code.
Historique
- 16 janvier 2009 19:23:33 :
- update
- 19 janvier 2009 12:03:54 :
- - regex email modifié en filter_var($value, FILTER_VALIDATE_EMAIL)
- contenu de la methode validate_limit_string modifié en valid_limit_num(strlen($value),...
- 19 janvier 2009 12:06:13 :
- update
Sources de la même categorie
RÉCUPÉRER LES MINIATURES D'UNE VIDÉO YOUTUBERÉCUPÉRER LES MINIATURES D'UNE VIDÉO YOUTUBE Le code est simple, il permet depuis une url youtube de récupérer son identifiant et de se connecter au serveur de miniatures pour en récupérer les im...
par tefa24600
CONVERTISSEUR DE NOMBRES EN TEXTECONVERTISSEUR DE NOMBRES EN TEXTEQu'est-ce ? Un convertisseur de nombre en texte.
Ses particularités?
- pas de limitation sur la taille du nombre (traitement en string, et non en ...
par macruz
CODAGE TEXTE >HTML, ISO, SPECIALCHARS, URL ET DECODAGECODAGE TEXTE >HTML, ISO, SPECIALCHARS, URL ET DECODAGECe script php permet, comme son nom l'indique de coder un texte pour remplacer les caractères spéciaux, ou apprendre à comprendre les htmlentities, sp...
par Salva9473
Commentaires et avis
Discussions en rapport avec ce code source dans le forum
format de date et time en c+ [ par tertulia ]
comment modifier le format de la date c'est dire remplacer les / par - et de l'heure càd remlacer : par - voilac pour pouvoir creer un fichier avec la
Convertir une Date au format Timestamp [ par Touf ]
Salut !J'ai un petit pb : j'accède à une Date stockée dans une bdd mysql sous la forme (timestamp) "YmdHis" : 20020608105031J'aimerais l'afficher sous
Date us rhaaa! [ par phildarvador ]
Salut à tous, J'ai une date dans une table mysql (au format date yyyy-mm-dd) et je ne trouve pas comment faire pour la transformer en dd-mm-yyyy (en f
Comparaison de date [ par benett ]
Bonjour à tous,Comment peut-on comparer 2 dates et extraire la différences en jours.Ces 2 dates sont encodées via un formulaire au format aaaa/aa/aa.C
Visual basic pour application Prob Date userform [ par velo ]
Lorque l'utilisateur de ma macro saisie une date en TextBox1 (Feuille Userform) 31/12/2002 ces données sont sous forme de texte Comment les converti
PHP / ODBC (base access) : Pb de date ! [ par Alextasis ]
AlexVoilà j'ai un ptit problème et ce serait cool si qq un pouvait me renseigner !voilà j'ai une base de donnée ACCESS tout ce qu'il y a de plus simpl
changer la date...... [ par rich25200 ]
bonjour,dans ma BDD j'insere la date avec la fonction NOW(), il m'insere la date avec ce format "2004-04-28 11:21:03"..je voudrais l'afficher dans une
Problème d'affichage de date dans un Ajout [ par vir76 ]
Bonjour,Dans ma base de données MySQL, j'ai un champ 'COMMANDE_DATE' avec pour format TIMESTAMP.Pour la visualisation, grâce à un SELECT DATE_FORMAT,
strftime("%Y-%m-%d %H:%M:%S") [ par olk22r ]
Bonjour à vous tous !J'ai un petit problème de comparaison de date avec la fonction strftime("%Y-%m-%d %H:%M:%S")...Je m'explique : j'insère dans ma b
Changer le Format de la Date [ par DiJiTooL ]
Bonjour tlm,Voila en gros quand j'extré mes donné de la bdd SQLj'ai la date au format "2002-26-07"et je voulé savoir si il y avais un fonction en PHP
|
Derniers Blogs
CSS CONTENT STATE SELECTORS (PERSONNAL DRAFT)CSS CONTENT STATE SELECTORS (PERSONNAL DRAFT) par FREMYCOMPANY
Bonjour à tous, Je viens de publier une proposition comprenant 5 pseudo-classes pour le CSS Working Group ayant trait à l'état de chargement d'un élément (ex: IMG,VIDEO,AUDIO,OBJECT pour l'HTML.). Si le c½ur vous en dit, vous pouvez retrouver cette p...
Cliquez pour lire la suite de l'article par FREMYCOMPANY MBA : POURQUOI FAIRE ET COMMENT LE CHOISIR ?MBA : POURQUOI FAIRE ET COMMENT LE CHOISIR ? par ROMELARD Fabrice
Formation initiale Durant la formation, le découpage classique est le suivant (je donnerai les équivalences Suisse lorsque je les connaîtrais) : Ecole primaire jusqu'au Collège : Formation générale permettant d'obtenir les méthodes...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice Y'A DES ERREURS QUI PEUVENT RENDRE LE DéVELOPPEUR VIOLENTY'A DES ERREURS QUI PEUVENT RENDRE LE DéVELOPPEUR VIOLENT par Aleks
Quand on a ce genre d'erreur sans log :
Et bas on a juste envie de choper le gas de Microsoft qu'a développé ça et lui foutre des baffes de Coboye ! ...
Cliquez pour lire la suite de l'article par Aleks [HYPER-V 3] PRéSENTATION DES COMMANDLETS POWERSHELL[HYPER-V 3] PRéSENTATION DES COMMANDLETS POWERSHELL par Pierrick CATRO-BROUILLET
Avec la sortie prochaine de la Beta Consumer Preview de Windows 8, j'avais envie de revenir sur une des fonctionnalités que j'attends le plus et que, en bon geek que je suis, j'utilise déjà : Hyper-V 3 ainsi son module PowerShell.
Il y a déjà pléthor...
Cliquez pour lire la suite de l'article par Pierrick CATRO-BROUILLET IIS7 - COMPRESSION GZIPIIS7 - COMPRESSION GZIP par cyril
La compression GZIP permet d'améliorer les performances de navigation en compressant ce qu'envoie le serveur à un client. Pour comprendre comment cela fonctionne, regardons ce qu'il se passe au niveau HTTP lorsqu'un client tente d'accéder à une ress...
Cliquez pour lire la suite de l'article par cyril
Logiciels
Easy-Planning (1.0.0.1)EASY-PLANNING (1.0.0.1)Basé sur les mêmes principes que MyPlanning, Easy-Planning permet de créer des plannings sous la ... Cliquez pour télécharger Easy-Planning Academy System (17.1.3.0)ACADEMY SYSTEM (17.1.3.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System COLLECTOR PLUS (3.00B)COLLECTOR PLUS (3.00B)COLLECTOR PLUS version 3.00B est un logiciel utilisant une base de données alimentée par :
- L... Cliquez pour télécharger COLLECTOR PLUS PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO LettresFaciles 2011 (8.0.0.1)LETTRESFACILES 2011 (8.0.0.1)LettresFaciles est un logiciel facilitant la création et la rédaction de lettres types.
Son inte... Cliquez pour télécharger LettresFaciles 2011
|