Опубликовано

Проверка формы на сервере

Сегодня уже не очень актуально проверять все поля формы вручную на сервере. Пример как того мы это делали раньше

<?php

if(!isset($_POST['phone']))
 exit('Введите телефон');

А теперь пример как это делается сейчас. Будем юзать класс разработчика с ником Wixel, который называется GUMP. Этот класс занимается валидацией данных. Простейший пример приведенный в документации

require "gump.class.php";

$is_valid = GUMP::is_valid($_POST, array(
    'username' => 'required|alpha_numeric',
    'password' => 'required|max_len,100|min_len,6'
));

if($is_valid === true) {
    // continue
} else {
    print_r($is_valid);
}

В коде видим, что первым делом подключаем сей класс. Скачать и ознакомиться с доками можно здесь 

https://github.com/Wixel/GUMP

в статическом методе is_valid мы добавляем правила, которые будут проходить поля username и password. Видим что юзернейм обязательное поле, которое включает буквы И цифры. Можно создать собственное правило валдиации используя следующий метод

require "gump.class.php";

GUMP::add_validator("is_object", function($field, $input, $param = NULL) { return is_object($input[$field]); });

$is_valid = GUMP::is_valid($_POST, array(
    'username' => 'required|alpha_numeric|is_object',
    'password' => 'required|max_len,100|min_len,6'
));

Создали правило is_object, которое подвесили на поле юзернейм.

Пример кастомных(своих) ошибкок.

$_POST = $validator->filter($_POST, $filters);

$validated = $validator->validate($_POST, $rules);

if ($validated === TRUE)
{
     echo "Successful Validation\n\n";
}
else
{
     foreach ($validated as $v)
     {
        switch ($v['field'])
        {
           case 'credit_card':
              echo "- The credit card provided is not valid.\n";
              break;
           case 'username':
              echo "- The username provided is not valid.\n";
              break;
        }
     }
}

Ну воть. Теперь вы крутой и знаете как валидировать данные в 2к16.

Добавить комментарий

Ваш e-mail не будет опубликован.