/* php validator class by cadmagician info@dev2.hu free, de tőkét elfogadok. ha van kiegészítésed, küldd el nekem, bővítsük */ class validator{ var $valid = true; var $message = array(); function item($value,$valid,$message){ $value = trim($value); $empty = $value == "" ? true : false; foreach($valid as $dik=> $validation){ switch(true){ case $validation == "required" : if(!(strlen($value)>0) && ($value!="-1") ){ $this->valid = false; $this->message[]= $message[$dik]; break 2; } break; case $validation == "url" : if ( !$empty && (!preg_match("/^(http|https|ftp):\/\/(([A-Z0-9][A-Z0-9_-]*)(\.[A-Z0-9][A-Z0-9_-]*)+)(:(\d+))?\/?/i",$value))){ $this->valid = false; $this->message[]= $message[$dik]; break 2; } break; case $validation == "username" : if ( !$empty && (!preg_match("/^([a-zA-Z0-9][a-zA-Z0-9-]{2,30}[a-zA-Z0-9])$/",$value))){ $this->valid = false; $this->message[]= $message[$dik]; break 2; } break; case $validation == "username2" : if ( !$empty && (!preg_match("/^([A-Za-z0-9éáűúőöüóÉÁŰÚŐÓÜÖíÍä\-+_!() |])+$/",$value))){ $this->valid = false; $this->message[]= $message[$dik]; break 2; } break; case $validation == "alpha" : if ( !$empty && !preg_match("/^([A-Za-z0-9éáűúőöüóÉÁŰÚŐÓÜÖíÍä\-+_!() |])+$/",$value)){ $this->valid = false; $this->message[]= $message[$dik]; break 2; } break; case $validation == "password" : if ( !$empty && !preg_match("/^(.{5,})$/",$value)){ $this->valid = false; $this->message[]= $message[$dik]; break 2; } break; case $validation == "date" : if ( !$empty && !preg_match("/^[0-9]{4}-[0-9]{1,2}-[0-9]{1,2}$/",$value)){ $this->valid = false; $this->message[]= $message[$dik]; break 2; } break; case $validation == "datetime" : if ( !$empty && !preg_match("/^[0-9]{4}-[0-9]{1,2}-[0-9]{1,2} [0-9]{1,2}:[0-9]{1,2}(:[0-9]{1,2})?$/",$value)){ $this->valid = false; $this->message[]= $message[$dik]; break 2; } break; case $validation == "numbers" : if ( !$empty && !preg_match("/^[0-9]+$/",$value)){ $this->valid = false; $this->message[]= $message[$dik]; break 2; } break; case $validation == "float" : if ( !$empty && !preg_match("/^[+-]?[0-9]+\.?([0-9]+)?$/",$value)){ $this->valid = false; $this->message[]= $message[$dik]; break 2; } break; case $validation == "currency" : if ( !$empty && !preg_match("/^([0-9])+ ?(huf|eur|ft)?$/i",$value)){ $this->valid = false; $this->message[]= $message[$dik]; break 2; } break; case $validation == "email" : if ( !$empty && !preg_match("/^[0-9a-z]([-_.]?[0-9a-z])*@[0-9a-z]([-.]?[0-9a-z])*\\.[a-z]{2,4}$/",$value)){ $this->valid = false; $this->message[]= $message[$dik]; break 2; } case substr($validation,0,6) == "regexp" : $regexp = substr($validation,6); if ( $empty && !preg_match("/$regexp/",$value)){ $this->valid = false; $this->message[]= $message[$dik]; break 2; } break; } } } function valid_equal($values, $message){ if (!(count(array_unique((array)$values))==1) || ($values[0]=="") ){ $this->valid = false; $this->message[]= $message; } } function one_required($values, $message){ if (!(count(array_unique((array)$values))>0)){ $this->valid = false; $this->message[]= $message; } } function validate($rules, $items){ $this->valid = true; foreach ($rules as $key => $field){ if (count($rules[$key])>0){ $this->item($items[$key],$field[0],$field[1]); } } } function set_valid($valid, $message){ $this->valid = $valid; $this->message[]= $message; } function valid(){ return $this->valid; } function message(){ return "
".implode("
",array_unique($this->message))."
".implode("
",array_unique($this->message))."