Einzelnen Beitrag anzeigen
  #8  
Alt 25.10.2013, 17:53:33
Schneidoa Schneidoa ist offline
Anfänger
 
Registriert seit: Mar 2006
Beiträge: 112
Schneidoa eine Nachricht über ICQ schicken
AW: php SecurityFramework

Hatte leider noch nicht genügend Zeit das umzusetzen, aber schon einmal vielen Dank für die Antworten.

Hier mal meinen ungetesteten Ansatz:
PHP-Code:
<?php

class FormValidator{

    private 
$types = array(
            
"integer" => "isInteger",
            
"date" => "isDate",
            
"email" => "isEmail"
    
);

    private 
$data$rules;


    function 
__construct($data$rules){

        
$this->data  =$data;

        
/*
         $rules = array(
                 array("field" => "surname", "type" => "email")
         );
        */

        
$this->rules =$rules;

    }

    public function 
validate(){
        
$formData =  array();
        
$error =  array();

        
$rules $this->data;
        
$data  $this->rules;

        foreach (
$rules as $rule){
            
            if(isset(
$data[$rule['field']])){
                
$functionName =  $types[$rule['type']];
                if(
method_exists($this,$functionName)){
                    if(
$this->$functionName($data[$rule['field']])){
                        
$formData[$rule['field']] = $data[$rule['field']];
                    }else{
                        
$error[] = "ERROR:  '" $data[$rule['field']] . "'!";
                    }
                }else{
                    
$error[] = "Function '" $types[$rule['type']] . "' does not exists!";
                }
            }else{
                
$error[] = "Field '" .$rule['field']. "' does not set!";
            }

        }

        return array(
"error" =>$error"data" => $formData );

    }




    
/*Type Validation */

    
public function isInteger($val){
        
/*ToDo */
        
return true;
    }

    public function 
isDate($val){
        
/*ToDo */
        
return false;
    }

    public function 
isEmail($val){
        
/*ToDo */
        
return false;
    }
}


//Aufruf

--HTML
<input type="email" name="email_name">
<
input type="date"  name="date_name">


--
PHP

--Regeln definieren

$rules 
= array(
         array(
"field" => "email_name""type" => "email"),
        array(
"field" => "date_name""type" => "date")
);



$validator =  new FormValidator ($_POST$rules);

list(
$error$_POST) = $validator->validate();

print_r($_POST);
print_r(error);
__________________
Schneidoa.de
Mit Zitat antworten