Welcome, guest! Login / Register - Why register?
Psst.. new poll here.
Psst.. new forums here.
Microsoft is blocking us again (TY IP Reputation!) so just use oauth login instead. :)

Paste

Pasted as PHP by czechu ( 15 years ago )
<?php

class validateForm{
    private $rules,$ok;
    public $error;
    
    function addRule($name, $rule){
        $this->rules[$name] = $rule;
    }
    
    
    function noEmpty($name)
    {
        $this->addRule($name, 'noEmpty');
    }
    
    function intNoNull($name){
        $this->addRule($name, 'intNoNull');
    }
    
    function compare($name,$name2,$type)
    {
        $this->addRule($name, 'compareto_'.$name2);
        $this->addRule($name2, 'compare_'.$type);
    }
    
    function email($name){
        $this->addRule($name,'email');
    }
    
    function minLenght($name,$lenght){
        $this->addRule($name, 'min_'.$lenght);
    }
    
    function maxLenght($name, $lenght){
        $this->addRule($name, 'max_'.$lenght);
    }
    
    function save()
    {
        $_SESSION['rules']=serialize($this->rules);
    }
    
    function foundError($pole, $rule)
    {
       $this->ok = false;
       $this->error[$pole] = $rule;
    }
    
    function parse(){
        $rules = unserialize($_SESSION['rules']);
        $this->ok = true;
        foreach($rules as $pole => $rule)
        {
            $in = postString($pole);
            $ruleTab = explode('_',$rule);

     switch ($ruleTab[0])
            {
                case 'noEmpty':
                    if(empty($in))
                         $this->foundError($pole, $rule);
                break;
                
                case 'intNoNull':
                    $in = postInt($pole);
                    if($in == 0 )
                         $this->foundError($pole, $rule);
                break;
                
                case 'compareto':
                    $compare[$ruleTab[1]] = $in;
                break;
            
                case 'compare':
                    switch ($ruleTab[1])
                    {
                    case '==':
                        if($in == $compare[$pole]);
                        else
                        $this->foundError($pole, $rule);
                    break;

      case '=!':
                        if($in != $compare[$pole]);
                        else
                        $this->foundError($pole, $rule);
                    break;
                    
                    case '<=':
                        if($compare[$pole] <= $in);
                        else
                        $this->foundError($pole, $rule);
                    break;
                    
                    case '<':
                        if($compare[$pole] < $in);
                        else
                        $this->foundError($pole, $rule);
                    break;   
                    
                    case '>=':
                        if($compare[$pole] >= $in);
                        else
                        $this->foundError($pole, $rule);
                    break; 
                    
                    case '>':
                        if($compare[$pole] > $in);
                        else
                        $this->foundError($pole, $rule);
                    break;    
      
      default:
     $this->foundError($pole, $rule);
                    }
                break;
                
                case 'email':
                    if( !preg_match( "/^([a-zA-Z0-9])+([a-zA-Z0-9._-])*@([a-zA-Z0-9_-])+([a-zA-Z0-9._-]+)+$/", $in))
                        $this->foundError($pole, $rule);   
                break;
                
                case 'min':
                    if(strlen($in)<$ruleTab[1])
                    $this->foundError($pole, $rule); 
                break;
                
                case 'max':
                    if(strlen($in)>$ruleTab[1])
                    $this->foundError($pole, $rule); 
                break;
                
  default:
     $this->foundError($pole, $rule);
            }        
        }
        return $this->ok;
    }

}

?>

 

Revise this Paste

Your Name: Code Language: