get_errors_array() 공개 메소드

Process the validation errors and return an array of errors with field names as keys.
public get_errors_array ( $convert_to_string = null ) : array | null
$convert_to_string
리턴 array | null | null (if empty)
 public static function validate(\RedBeanPHP\OODBBean $bean)
 {
     $data = $bean->export();
     $model = $bean->box() !== null ? $bean->box() : null;
     if (!$model) {
         throw new ModelValidation_Exception('This bean does not have a model!');
     }
     $rules = isset($model::$rules) ? $model::$rules : null;
     if (!$rules) {
         throw new ModelValidation_Exception('This bean does not have any established rules!');
     }
     $validations = [];
     $filters = [];
     $labels = [];
     $messages = [];
     foreach ($rules as $field => $rule) {
         if (isset($rule['filter'])) {
             $filters[$field] = $rule['filter'];
         }
         if (isset($rule['label'])) {
             $labels[$field] = $rule['label'];
         }
         if (isset($rule['validation'])) {
             $validations[$field] = $rule['validation'];
         }
         if (isset($rule['message'])) {
             $field = isset($rule['label']) ? $rule['label'] : ucwords(str_replace(array('_', '-'), chr(32), $field));
             $messages[$field] = $rule['message'];
         }
     }
     $gump = new \GUMP();
     if (!empty($filters)) {
         $gump->filter_rules($filters);
     }
     if (!empty($validations)) {
         $gump->validation_rules($validations);
     }
     if (!empty($labels)) {
         $gump->set_field_names($labels);
     }
     $validated_data = $gump->run($data);
     if ($validated_data === false) {
         return self::default2custom_errors($gump->get_errors_array(), $messages);
     } else {
         $bean->import($validated_data);
         return true;
     }
 }
<?php

require "gump.class.php";
$validator = new GUMP();
$_POST = $validator->sanitize($_POST);
$rules = array('username' => 'required|alpha_numeric|max_len,100|min_len,6', 'password' => 'required|max_len,100|min_len,6', 'email' => 'required|valid_email', 'gender' => 'required|exact_len,1', 'credit_card' => 'required|valid_cc', 'bio' => 'required');
$validated = $validator->validate($_POST, $rules);
if ($validated === TRUE) {
    $result["result"] = true;
    die(json_encode($result));
} else {
    $result['error'] = $validator->get_errors_array();
    $result["result"] = false;
    die(json_encode($result));
}
예제 #3
0
 /**
  * Handle account registrations and view rendering
  */
 public function register()
 {
     // If the user is already logged in, redirect
     if (\Helpers\Session::get('loggedin')) {
         \Helpers\Url::redirect('Courses');
     }
     // If the registration form is submitted
     if (isset($_POST['submit'])) {
         // Check if the student exists
         $studentExists = $this->account->studentExists($_POST['student_id']);
         // If user does not exists
         if (!$studentExists) {
             $validator = new GUMP();
             // Sanitize the submission
             $_POST = $validator->sanitize($_POST);
             // Set the data
             $input_data = array('student_id' => $_POST['student_id'], 'student_name' => $_POST['student_name'], 'student_phone' => $_POST['student_phone'], 'student_password' => $_POST['student_password'], 'student_password_confirmation' => $_POST['student_password_confirmation']);
             // Define custom validation rules
             $rules = array('student_id' => 'required|numeric|min_len,5', 'student_name' => 'required|alpha_space', 'student_phone' => 'required|phone_number', 'student_password' => 'required|regex,/^\\S*(?=\\S{6,})(?=\\S*[a-z])(?=\\S*[A-Z])(?=\\S*[\\d])\\S*$/', 'student_password_confirmation' => 'required|contains,' . $_POST['student_password']);
             // Define validation filters
             $filters = array('student_id' => 'trim|sanitize_string', 'student_name' => 'trim|sanitize_string', 'student_phone' => 'trim|sanitize_string', 'student_password' => 'trim', 'student_password_confirmation' => 'trim');
             // Validate the data
             $_POST = $validator->filter($_POST, $filters);
             $validated = $validator->validate($_POST, $rules);
             // If data is valid
             if ($validated === true) {
                 // Create password hash
                 $password = $_POST['student_password'];
                 $hash = \Helpers\Password::make($password);
                 // Insert student into DB
                 $student_data = array('StudentId' => $_POST['student_id'], 'Name' => $_POST['student_name'], 'Phone' => $_POST['student_phone'], 'Password' => $hash);
                 // Insert the student into the database
                 $this->account->insertStudent($student_data);
                 // Get the newly created user hash
                 $currentUser = $this->account->getStudentHash($_POST['student_id']);
                 // Create a session with user info
                 \Helpers\Session::set('StudentId', $currentUser[0]->StudentId);
                 \Helpers\Session::set('Name', $currentUser[0]->Name);
                 \Helpers\Session::set('loggedin', true);
                 // Redirect to course selection page
                 \Helpers\Url::redirect('Courses');
             } else {
                 // Set errors
                 $error = $validator->get_errors_array();
             }
         } else {
             // Set additional error
             $error['exists'] = 'ID already exists';
         }
     }
     $data['title'] = 'New User';
     View::renderTemplate('header', $data, 'account');
     View::render('account/register', $data, $error);
     View::renderTemplate('footer', $data, 'account');
 }
require_once 'src/EXPORT/Station.php';
require_once 'src/EXPORT/Pax6_tarif.php';
require_once 'src/EXPORT/Pax3_tarif.php';
require_once 'src/EXPORT/Pax10_tarif.php';
require_once 'src/EXPORT/Pax16_tarif.php';
require_once 'src/EXPORT/Pax40_tarif.php';
require_once 'process.php';
session_start();
$gump = new GUMP();
$_POST = $gump->sanitize($_POST);
// You don't have to sanitize, but it's safest to do so.
$gump->validation_rules(array('depart' => 'required|max_len,90|min_len,5', 'destination' => 'required|max_len,90|min_len,5', 'passager' => 'required|max_len,40|min_len,5', 'retour' => 'required|alpha_dash|max_len,20|min_len,4', 'clientName' => 'required|alpha_space|max_len,40|min_len,2', 'clientEmail' => 'required|valid_email', 'clientTel' => 'required|numeric|max_len,15|min_len,5', 'clientType' => 'required|max_len,90|min_len,4', 'clientPickUP' => 'required|date', 'clientPickTimeHUP' => 'required|numeric|max_len,2', 'clientPickTimeMUP' => 'required|numeric|max_len,2'));
$validated_data = $gump->run($_POST);
if ($validated_data === false) {
    $chaine = "Les données entrées sont erronés : <br>";
    foreach ($gump->get_errors_array() as $strings) {
        $chaine = $chaine . $strings . '<br>';
    }
    $_SESSION['aERROR'] = $chaine;
    Redirect('reservation.php', false);
} else {
    if ($_POST['retour'] == "Aller-Retour" && (!isset($_POST['clientPickBackUP']) || !isset($_POST['clientPickBackTimeHUP']) || !isset($_POST['clientPickBackTimeMUP']))) {
        $is_valid = GUMP::is_valid($_POST, array('clientPickBackUP' => 'required|date', 'clientPickBackTimeHUP' => 'required|numeric|max_len,2', 'clientPickBackTimeMUP' => 'required|numeric|max_len,2'));
        if (!($is_valid === true)) {
            $_SESSION['aERROR'] = "Vous avez choisi un Aller-Retour mais vous n'avez pas spécifié le champ <strong>Temps Retour</strong> ";
            Redirect('reservation.php', false);
        }
    }
    $consumer = new Consumer();
    $consumer->setName($_POST['clientName']);
    $consumer->setEmail($_POST['clientEmail']);