HOME


Mini Shell 1.0
DIR: /home/islapiiu/sites/helpsrilankango/class/
Upload File :
Current File : /home/islapiiu/sites/helpsrilankango/class/Validator.php
<?php

/**

 * Description of Validator

 *

 * @author official

 */
class Validator {

    private $_passed = false,
            $_errors = array();

    public function check($source, $items = array()) {





        foreach ($items as $item => $rules) {



            foreach ($rules as $rule => $rule_value) {





                $value = trim($source->$item);



                if ($rule === "required" && empty($value)) {



                    $message = "{$item} is required";

                    $status = "danger";

                    $this->addError($message, $status);
                } else if (!empty($value)) {

                    switch ($rule) {

                        case 'min':

                            if (strlen($value) < $rule_value) {

                                $message = "{$item} must be a minimum of {$rule_value} characters.";

                                $status = "danger";

                                $this->addError($message, $status);
                            }

                            break;

                        case 'max':

                            if (strlen($value) > $rule_value) {

                                $message = "{$item} must be a maximum of {$rule_value} characters.";

                                $status = "danger";

                                $this->addError($message, $status);
                            }

                            break;

                        case 'matches':

                            if ($value != $source[$rule_value]) {

                                $message = "{$rule_value} must match {$item}";

                                $status = "danger";

                                $this->addError($message, $status);
                            }

                            break;

                        case 'email':

                            if (!filter_var($value, FILTER_VALIDATE_EMAIL)) {

                                $message = "{$rule_value} invalid email format {$item}";

                                $status = "danger";

                                $this->addError($message, $status);
                            }

                            break;

                        case 'numeric':

                            if (!is_numeric($value)) {

                                $message = "{$item} must be numeric ";

                                $status = "danger";

                                $this->addError($message, $status);
                            }

                            break;
                    }
                }
            }
        }

        if (empty($this->_errors)) {

            $this->_passed = TRUE;
        }

        return $this;
    }

    public function addError($message, $status) {

        $this->_errors[] = ['message' => $message, 'status' => $status];
    }

    public function errors() {

        return $this->_errors;
    }

    public function passed() {

        return $this->_passed;
    }

    public function show_message() {



        if (!isset($_SESSION)) {

            session_start();
        }



        if (isset($_SESSION['ERRORS'])) {

            foreach ($_SESSION['ERRORS'] as $error) {
                ?>

                <div class="alert alert-<?php echo $error["status"]; ?>">

                    <strong><?php echo ucfirst($error["status"]); ?> : </strong> <?php echo ucfirst($error["message"]); ?>!.

                </div>

                <?php
            }

            unset($_SESSION['ERRORS']);
        }
    }

}