ValidationInput.php
<?php /** * By Artur Kupczak, This class can be used in every project, please don't remove this line. */ class ValidationInput{ //------------------------------------------------------------------------------------------------------------------------------------------------------------------------- // Looping inside of parameters given in the form, and then passing data to class validateRequest // // @param array $validation Value passed from requested validation foreach($validation as $field => $requests){ foreach($requests as $validationName => $validationInfo) { $this->validateRequest($validationName,$validationInfo,$field); } } } //------------------------------------------------------------------------------------------------------------------------------------------------------------------------- // Looping inside of parameters given in the form // // @param string $validationName // @param string $validationInfo // @param string $field // // Case possible options: // require booleon - If booleon true has been given then field is required otherwise the error will be displayed // preg_match String (Choice between)- // Alphabetic - Allow Numbers and Letters // Numeric - Allow Numbers Only // Letters - Allow letters Only // // minLength Numbers - The minimum length of the field // maxLength Numbers - The maximum length of the field // matchWith String - String given is a name of field that the field need to compare, For example password/passwordRepeat // filter_validate String (Choice between)- // Email - Compare field with email and return error if it's not a email // // private function validateRequest($validationName, $validationInfo, $field) { switch ($validationName) { case 'require': ? ErrorHandler::getInstance()->addError("Field " . $field . " can't be empty") : false; break; case 'preg_match': switch($validationInfo){ case 'alphabetic': ? ErrorHandler::getInstance()->addError("Field " . $field . " contains prohibited characters") : false; break; case 'numeric': ? ErrorHandler::getInstance()->addError("Field " . $field . " can contains numbers only") : false; break; case 'letters': ? ErrorHandler::getInstance()->addError("Field " . $field . " can contains letters only") : false; break; } break; case 'minLength': ? ErrorHandler::getInstance()->addError("" . $field . " field need to be minimum " . $validationInfo . " characters") : false; break; case 'maxLength': ? ErrorHandler::getInstance()->addError("This field is longer then " . $validationInfo . " characters") : false; break; case "matchWith": Input::get($field) != Input::get($validationInfo) ? ErrorHandler::getInstance()->addError($field . " field doesn't match " . $validationInfo . " field") : false; break; case "filter_validate"; switch ($validationInfo) { case "email": ? ErrorHandler::getInstance()->addError("This is not a valid E-mail") : false; break; } break; } } { if(self::$instance === null) { self::$instance = new self(); } return self::$instance; } }
Input.php (Nie jest wymagany):
class Input { { return escape($_POST[$item]); } return escape($_GET[$item]); } return ''; } }
ErrorHandeler.php
class ErrorHandler { public function addError($newError) { self::$errorBooleon = true; self::$errors[] = $newError; } { return self::$errorBooleon; } { return self::$errors; } { if (self::$instance === null) { self::$instance = new self(); } return self::$instance; } }
Przykladowe uzycie :
if(Input::get("register") ){ ValidationInput::getInstance()->validateInput( 'require' => true, 'minLength' => 3, 'maxLength' => 15 ) ) ) if(ErrorHandler::checkIfErrors() == false ){ } if (ErrorHandler::checkIfErrors()) { foreach (ErrorHandler::returnErrors() as $error) { ErrorHandler::$errorBooleon = false; } }