Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    [PHP5] Validation system richiesta parere ....

    Ciao.
    Da un articolo di Fabio Sutto ho eleborato questa bozza di codice:
    Codice PHP:
    <?php
    error_reporting
    (E_ALL E_STRICT);
    define("IS_REQUIRED"'"%s" è un campo obbligatorio') ;
    define('NOT_NUM''"%s" non contiene un numero valido') ;
    class 
    ValidatorFactory{
        public function 
    createValidator($validator,$field,$value){
            if(!
    class_exists($validator)){
            throw new 
    Exception('Invalid object parameters');
        }
               return new 
    $validator($field,$value);
       }
    }
    abstract class 
    AbstractValidator{
        public static 
    $error= array();
        abstract function 
    validate();
        public function 
    setError($msg){
            
    self::$error[]= $msg;
        }
        public static function 
    getErrors(){
            return 
    self::$error;
        }
        public static function 
    getError(){
            return 
    array_shift(self::$error);
        }
        public static function 
    isValid(){
            return !(bool)
    count(self::$error) ;
          }
    }
    //
    class IsEmpty extends AbstractValidator{
        private 
    $value'';
        private 
    $field'';
        public function 
    __construct($field,$value){
            
    $this->field$field;
            
    $this->value$value;
        }
        public function 
    validate(){
            if(empty(
    $this->value)){
                
    parent::setError(sprintf(IS_REQUIRED$this->field));
            }
        }
    }
    //
    class IsNumeric extends AbstractValidator{
        private 
    $value'';
        private 
    $field'';
        public function 
    __construct($field,$value){
            
    $this->field$field;
            
    $this->value$value;
        }
        public function 
    validate(){
            if(!
    is_numeric($this->value)){
                
    parent::setError(sprintf(NOT_NUM$this->field));
            }
        }
    }
    //
    try{
          
    $valFactory=new ValidatorFactory();
        
    $valFactory->createValidator('IsEmpty','Username','')->validate();
        
    $valFactory->createValidator('IsNumeric','Age','xxx')->validate();
        if(
    AbstractValidator::isValid()){
            
    //insert data
        
    }
        else{
            foreach(
    AbstractValidator::getErrors() as $error)
            {
                echo 
    "

    "
    .$error."</p>";
            }
        }
    }
    catch(
    Exception $e){
      echo 
    $e->getMessage();
      exit();
    }


    ?>
    Che ne pensate suggerimenti ?



    Without faith, nothing is possible. With it, nothing is impossible
    http://ilwebdifabio.it

  2. #2
    Without faith, nothing is possible. With it, nothing is impossible
    http://ilwebdifabio.it

  3. #3
    Ciao.
    Per chi fosse interessato qui qui trova la versione aggiornata
    non spingete mi raccomando


    Without faith, nothing is possible. With it, nothing is impossible
    http://ilwebdifabio.it

  4. #4
    Mi piace tutto trannè l'empty(), che da false anche nel caso in cui contenga 0 sia come int ma sopratutto anche come stringa, mi affiderei più sul classico ==""

  5. #5
    Originariamente inviato da mem
    Mi piace tutto trannè l'empty(), che da false anche nel caso in cui contenga 0 sia come int ma sopratutto anche come stringa, mi affiderei più sul classico ==""
    Ti ringrazio dell'osservazione ma il post l'ho
    aperto per chiedere il parere sul system i
    sistemi di validazione sono puramente
    di esempio.

    Dai un occhio qui


    Without faith, nothing is possible. With it, nothing is impossible
    http://ilwebdifabio.it

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.