CodeIgniter - проверка формы

Проверка - важный процесс при создании веб-приложения. Это гарантирует, что данные, которые мы получаем, пригодны и пригодны для хранения или обработки. CodeIgniter сделал эту задачу очень простой. Давайте разберемся в этом процессе на простом примере.

пример

Создать файл просмотра myform.php и сохраните приведенный ниже код в application/views/myform.php. На этой странице будет отображаться форма, в которой пользователь может указать свое имя, и мы проверим эту страницу, чтобы убедиться, что она не должна быть пустой при отправке.

<html>
 
   <head> 
      <title>My Form</title> 
   </head>
	
   <body>
      <form action = "" method = "">
         <?php echo validation_errors(); ?>  
         <?php echo form_open('form'); ?>  
         <h5>Name</h5> 
         <input type = "text" name = "name" value = "" size = "50" />  
         <div><input type = "submit" value = "Submit" /></div>  
      </form>  
   </body>
	
</html>

Создать файл просмотра formsuccess.php и сохраните это в application/views/formsuccess.php. Эта страница будет отображаться, если форма будет успешно проверена.

<html>
 
   <head> 
      <title>My Form</title>
   </head> 
	
   <body>  
      <h3>Your form was successfully submitted!</h3>  
      <p><?php echo anchor('form', 'Try it again!'); ?></p>  
   </body>
	
</html>

Создайте файл контроллера Form.php и сохраните это в application/controller/Form.php. Эта форма будет либо отображать ошибки, если она не проверена должным образом, либо перенаправлена ​​наformsuccess.php страница.

<?php
  
   class Form extends CI_Controller { 
	
      public function index() { 
         /* Load form helper */ 
         $this->load->helper(array('form'));
			
         /* Load form validation library */ 
         $this->load->library('form_validation');
			
         /* Set validation rule for name field in the form */ 
         $this->form_validation->set_rules('name', 'Name', 'required'); 
			
         if ($this->form_validation->run() == FALSE) { 
         $this->load->view('myform'); 
         } 
         else { 
            $this->load->view('formsuccess'); 
         } 
      }
   }
?>

Добавьте следующую строку в application/config/routes.php.

$route['validation'] = 'Form';

Давайте выполним этот пример, посетив следующий URL-адрес в браузере. Этот URL может отличаться в зависимости от вашего сайта.

http://yoursite.com/index.php/validation

Это создаст следующий экран -

Мы добавили проверку в контроллер - Nameобязательное поле перед отправкой формы. Итак, если вы нажмете кнопку отправки, не вводя ничего в поле имени, вам будет предложено ввести имя перед отправкой, как показано на экране ниже.

После успешного ввода имени вы будете перенаправлены на экран, как показано ниже.

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

Справочник по правилам проверки

Ниже приведен список всех доступных для использования собственных правил.

Правило Параметр Описание пример

required

Нет Возвращает FALSE, если элемент формы пуст.

matches

да Возвращает FALSE, если элемент формы не соответствует элементу в параметре. соответствует [form_item]

regex_match

да Возвращает FALSE, если элемент формы не соответствует регулярному выражению. regex_match [/ regex /]

differs

да Возвращает FALSE, если элемент формы не отличается от элемента в параметре. отличается [form_item]

is_unique

да Возвращает FALSE, если элемент формы не уникален для таблицы и имени поля в параметре. Примечание. Для работы этого правила требуется, чтобы Построитель запросов был включен. is_unique [table.field]

min_length

да Возвращает FALSE, если элемент формы короче значения параметра. min_length [3]

max_length

да Возвращает FALSE, если длина элемента формы превышает значение параметра. max_length [12]

exact_length

да Возвращает FALSE, если элемент формы не является точно значением параметра. точная_длина [8]

greater_than

да Возвращает FALSE, если элемент формы меньше или равен значению параметра или не является числовым. больше_тем [8]

greater_than_equal_to

да Возвращает FALSE, если элемент формы меньше значения параметра или не является числовым. great_than_equal_to [8]

less_than

да Возвращает FALSE, если элемент формы больше или равен значению параметра или не является числовым. less_than [8]

less_than_equal_to

да Возвращает FALSE, если элемент формы больше значения параметра или не является числовым. less_than_equal_to [8]

in_list

да Возвращает FALSE, если элемент формы не входит в заранее определенный список. in_list [красный, синий, зеленый]

alpha

Нет Возвращает FALSE, если элемент формы содержит что-либо, кроме буквенных символов.

alpha_numeric

Нет Возвращает FALSE, если элемент формы содержит что-либо, кроме буквенно-цифровых символов.

alpha_numeric_spaces

Нет Возвращает FALSE, если элемент формы содержит что-либо, кроме буквенно-цифровых символов или пробелов. Следует использовать после обрезки, чтобы избежать пробелов в начале или в конце

alpha_dash

Нет Возвращает FALSE, если элемент формы содержит что-либо, кроме буквенно-цифровых символов, подчеркиваний или дефисов.

numeric

Нет Возвращает FALSE, если элемент формы содержит что-либо, кроме числовых символов.

integer

Нет Возвращает FALSE, если элемент формы содержит что-либо, кроме целого числа.

decimal

Нет Возвращает FALSE, если элемент формы содержит что-либо, кроме десятичного числа.

is_natural

Нет Возвращает FALSE, если элемент формы содержит что-либо, кроме натурального числа - 0, 1, 2, 3 и т. Д.

is_natural_no_zero

Нет Возвращает FALSE, если элемент формы содержит что-либо, кроме натурального числа, но не нуля - 1, 2, 3 и т. Д.

valid_url

Нет Возвращает FALSE, если элемент формы не содержит действительного URL.

valid_email

Нет Возвращает FALSE, если элемент формы не содержит действительного адреса электронной почты.

valid_emails

Нет Возвращает FALSE, если какое-либо значение, указанное в списке, разделенном запятыми, не является допустимым адресом электронной почты.

valid_ip

Нет Возвращает FALSE, если предоставленный IP недействителен. Принимает необязательный параметр ipv4 или ipv6 для указания формата IP.

valid_base64

Нет Возвращает FALSE, если предоставленная строка содержит что-либо, кроме допустимых символов Base64.