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. |