35 lines
		
	
	
		
			979 B
		
	
	
	
		
			PHP
		
	
	
			
		
		
	
	
			35 lines
		
	
	
		
			979 B
		
	
	
	
		
			PHP
		
	
	
| <?php
 | |
| class FormValidator {
 | |
| 
 | |
|     private array $fieldValidation;
 | |
| 
 | |
|     public function __construct(array $fieldValidation) {
 | |
|         $this->fieldValidation = $fieldValidation;
 | |
|     }
 | |
| 
 | |
|     public function isValid(array $req) {
 | |
|         if(!isset($req['csrf']) || $req['csrf'] !== $_SESSION['csrf']) {
 | |
|             return false;
 | |
|         }
 | |
| 
 | |
|         foreach($this->fieldValidation as $field => $params) {
 | |
|             if(isset($req[$field]) && strlen(trim($req[$field])) > 0) {
 | |
|                 if(isset($params['regex'])) {
 | |
|                     if(!preg_match($params['regex'], $req[$field])) {
 | |
|                         return false;
 | |
|                     }
 | |
|                 }
 | |
|                 else if(isset($params['equals']) && $params['equals'] !== $req[$field]) {
 | |
|                     return false;
 | |
|                 }
 | |
|             }
 | |
|             else if(isset($params['required']) && $params['required']) {
 | |
|                 return false;
 | |
|             }
 | |
|         }
 | |
| 
 | |
|         return true;
 | |
|     }
 | |
| 
 | |
| }
 | |
| ?>
 |