Статьи

Проверка формы CodeIgniter: от начала до конца

Как разработчик веб-приложений, проверка формы является важной частью вашей работы, и ее не следует недооценивать, поскольку это может привести к недостаткам безопасности в вашем приложении. Вы должны считать это обязательным, если вы стремитесь обеспечить профессиональный опыт конечного пользователя.

В этой статье мы рассмотрим встроенную библиотеку проверки формы в среде CodeIgniter.

Вот основные моменты сегодняшней статьи:

  • Проверка основной формы
  • Каскадирование и подготовка
  • Пользовательские сообщения об ошибках
  • Пользовательская проверка обратного вызова
  • Конфигурация проверки

В этом разделе мы рассмотрим основные концепции проверки формы в CodeIgniter.

В рамках этого нам нужно создать контроллер и просматривать файлы. Файл контроллера загружает библиотеку проверки и запускает правила проверки для переданных данных формы. Файл представления содержит код формы XHTML, и мы сделаем его простым для наших нужд.

Давайте продолжим и создадим эти два файла.

Создайте файл контроллера application/controllers/Validation.php со следующим содержимым.

001
002
003
004
005
006
007
008
009
010
011
012
013
014
015
016
017
018
019
020
021
022
023
024
025
026
027
028
029
030
031
032
033
034
035
036
037
038
039
040
041
042
043
044
045
046
047
048
049
050
051
052
053
054
055
056
057
058
059
060
061
062
063
064
065
066
067
068
069
070
071
072
073
074
075
076
077
078
079
080
081
082
083
084
085
086
087
088
089
090
091
092
093
094
095
096
097
098
099
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
<?php
// application/controllers/Validation.php
defined(‘BASEPATH’) OR exit(‘No direct script access allowed’);
 
class Validation extends CI_Controller {
    public function __construct()
    {
        parent::__construct();
     
        // load form and url helpers
        $this->load->helper(array(‘form’, ‘url’));
         
        // load form_validation library
        $this->load->library(‘form_validation’);
    }
     
    public function basic()
    {
        // basic required field
        $this->form_validation->set_rules(‘text_field’, ‘Text Field One’, ‘required’);
         
        // basic required field with minimum length
        $this->form_validation->set_rules(‘min_text_field’, ‘Text Field Two’, ‘required|min_length[8]’);
         
        // basic required field with maximum length
        $this->form_validation->set_rules(‘max_text_field’, ‘Text Field Three’, ‘required|max_length[20]’);
         
        // basic required field with exact length
        $this->form_validation->set_rules(‘exact_text_field’, ‘Text Field Four’, ‘required|exact_length[12]’);
         
        // basic required field but alphabets only
        $this->form_validation->set_rules(‘alphabets_text_field’, ‘Text Field Five’, ‘required|alpha’);
         
        // basic required field but alphanumeric only
        $this->form_validation->set_rules(‘alphanumeric_text_field’, ‘Text Field Six’, ‘required|alpha_numeric’);
         
        // basic email field with email validation
        $this->form_validation->set_rules(‘valid_email_field’, ‘Email Field’, ‘required|valid_email’);
         
        // password field with confirmation field matching
        $this->form_validation->set_rules(‘password_field’, ‘Password One’, ‘required’);
        $this->form_validation->set_rules(‘password_confirmation_field’, ‘Password Confirmation Field’, ‘required|matches[password_field]’);
         
        // basic required field with IPv4 validation
        $this->form_validation->set_rules(‘valid_ip_field’, ‘Valid IP Field’, ‘required|valid_ip[ipv4]’);
         
        if ($this->form_validation->run() == FALSE)
        {
            $this->load->view(‘validate_form’);
        }
        else
        {
            // load success template…
            echo «It’s all Good!»;
        }
    }
     
    public function cascade()
    {
        // basic required field with cascaded rules
        $this->form_validation->set_rules(‘text_field’, ‘Text Field One’, ‘required|alpha|min_length[8]|max_length[20]’);
          
        if ($this->form_validation->run() == FALSE)
        {
            $this->load->view(‘validate_form’);
        }
        else
        {
            // load success template…
            echo «It’s all Good!»;
        }
    }
     
    public function prep()
    {
        // basic required field with trim prepping applied
        $this->form_validation->set_rules(‘min_text_field’, ‘Text Field Two’, ‘trim|required|min_length[8]’);
         
        if ($this->form_validation->run() == FALSE)
        {
            $this->load->view(‘validate_form’);
        }
        else
        {
            // load success template…
            echo «It’s all Good!»;
        }
    }
     
    public function custom_message()
    {
        // basic required field with trim prepping applied
        $this->form_validation->set_rules(‘alphabets_text_field’, ‘Text Field Five’, ‘required|alpha’,
            array(‘required’=>’Please enter Text Field Five!’,’alpha’=>’Only alphabets please!’));
         
        if ($this->form_validation->run() == FALSE)
        {
            $this->load->view(‘validate_form’);
        }
        else
        {
            // load success template…
            echo «It’s all Good!»;
        }
    }
     
    public function custom_rule()
    {
        // basic required field with trim prepping applied
        $this->form_validation->set_rules(‘text_field’, ‘Text Field Five’, ‘callback_custom_validation’);
         
        if ($this->form_validation->run() == FALSE)
        {
            $this->load->view(‘validate_form’);
        }
        else
        {
            // load success template…
            echo «It’s all Good!»;
        }
    }
     
    public function custom_validation($field_value)
    {
        if ($field_value == » || $field_value == ‘demo’)
        {
            $this->form_validation->set_message(‘custom_validation’, «Come on, don’t act like spammer!»);
            return FALSE;
        }
        else
        {
            return TRUE;
        }
    }
     
    public function configuration()
    {
        // if you pass group id, only elements in that group will be validated
        // $this->form_validation->run(‘group_one’)
        if ($this->form_validation->run() == FALSE)
        {
            $this->load->view(‘validate_form’);
        }
        else
        {
            // load success template…
            echo «It’s all Good!»;
        }
    }
}

Затем создайте файл представления application/views/validate_form.php как показано ниже.

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
<html>
    <head>
    <title>Form Validation Example</title>
    <style>
    .field_title{font-size: 13px;font-family:Arial;width: 300px;margin-top: 10px}
    .form_error{font-size: 13px;font-family:Arial;color:red;font-style:italic}
    </style>
    </head>
     
    <body>
        <div class=»form_error»>
          <?php echo validation_errors();
        </div>
         
        <?php echo form_open();
         
            <h2>Form Validation Example</h2>
         
            <div>
                <div class=»field_title»>Text Field One (Required)</div>
                <input type=»text» name=»text_field» value=»<?php echo set_value(‘text_field’); ?>» size=»30″ />
            </div>
             
            <div>
                <div class=»field_title»>Text Field Two (Minimum length)</div>
                <input type=»text» name=»min_text_field» value=»<?php echo set_value(‘min_text_field’); ?>» size=»30″ />
            </div>
             
            <div>
                <div class=»field_title»>Text Field Three (Maximum length)</div>
                <input type=»text» name=»max_text_field» value=»<?php echo set_value(‘max_text_field’); ?>» size=»30″ />
            </div>
             
            <div>
                <div class=»field_title»>Text Field Four (Exact length)</div>
                <input type=»text» name=»exact_text_field» value=»<?php echo set_value(‘exact_text_field’); ?>» size=»30″ />
            </div>
             
            <div>
                <div class=»field_title»>Text Field Five (Alphabets only)</div>
                <input type=»text» name=»alphabets_text_field» value=»<?php echo set_value(‘alphabets_text_field’); ?>» size=»30″ />
            </div>
             
            <div>
                <div class=»field_title»>Text Field Six (Alphanumeric only)</div>
                <input type=»text» name=»alphanumeric_text_field» value=»<?php echo set_value(‘alphanumeric_text_field’); ?>» size=»30″ />
            </div>
             
            <div>
                <div class=»field_title»>Email Field</div>
                <input type=»text» name=»valid_email_field» value=»<?php echo set_value(‘valid_email_field’); ?>» size=»30″ />
            </div>
             
            <div>
                <div class=»field_title»>Password Field</div>
                <input type=»password» name=»password_field» value=»» size=»30″ />
            </div>
             
            <div>
                <div class=»field_title»>Password Confirmation Field</div>
                <input type=»password» name=»password_confirmation_field» value=»» size=»30″ />
            </div>
             
            <div>
                <div class=»field_title»>IP Field</div>
                <input type=»text» name=»valid_ip_field» value=»<?php echo set_value(‘valid_ip_field’); ?>» size=»30″ />
            </div>
             
            <div class=»field_title»>
                <input type=»submit» value=»Submit» />
            </div>
         
        </form>
    </body>
</html>

При такой настройке вы должны увидеть форму при запуске http: // your-codeigniter-site / validation / basic в вашем браузере. Попробуйте отправить его, не заполняя ни одно из полей формы, и вы увидите список сообщений об ошибках! Не беспокойтесь, если вы не понимаете, как все это работает, так как мы подробно рассмотрим каждый фрагмент кода.

История начинается с метода __construct .

01
02
03
04
05
06
07
08
09
10
public function __construct()
{
    parent::__construct();
     
    // load form and url helpers
    $this->load->helper(array(‘form’, ‘url’));
       
    // load form_validation library
    $this->load->library(‘form_validation’);
}

Я всегда предпочитаю загружать общие библиотеки и помощники в конструктор самого контроллера, так как это хорошая привычка избегать дублирования кода в других местах методов контроллера. Это именно то, что мы сделали выше — мы загружаем помощники form и url чтобы мы могли использовать служебные методы, предоставляемые этими помощниками в остальной части приложения.

Затем мы загружаем библиотеку проверки формы, чтобы она позволяла нам связывать правила проверки формы с элементами формы, как мы увидим в следующем разделе.

Давайте пройдемся по коду basic метода. Что делает этот метод? Если вы вызываете его с помощью метода GET , он отображает форму, а если он был вызван с помощью метода POST , он применяет правила проверки к отправленным данным и отображает сообщения об ошибках, если таковые имеются, вместе с формой.

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
public function basic()
{
    // basic required field
    $this->form_validation->set_rules(‘text_field’, ‘Text Field One’, ‘required’);
     
    // basic required field with minimum length
    $this->form_validation->set_rules(‘min_text_field’, ‘Text Field Two’, ‘required|min_length[8]’);
     
    // basic required field with maximum length
    $this->form_validation->set_rules(‘max_text_field’, ‘Text Field Three’, ‘required|max_length[20]’);
     
    // basic required field with exact length
    $this->form_validation->set_rules(‘exact_text_field’, ‘Text Field Four’, ‘required|exact_length[12]’);
     
    // basic required field but alphabets only
    $this->form_validation->set_rules(‘alphabets_text_field’, ‘Text Field Five’, ‘required|alpha’);
     
    // basic required field but alphanumeric only
    $this->form_validation->set_rules(‘alphanumeric_text_field’, ‘Text Field Six’, ‘required|alpha_numeric’);
     
    // basic email field with email validation
    $this->form_validation->set_rules(‘valid_email_field’, ‘Email Field’, ‘required|valid_email’);
     
    // password field with confirmation field matching
    $this->form_validation->set_rules(‘password_field’, ‘Password One’, ‘required’);
    $this->form_validation->set_rules(‘password_confirmation_field’, ‘Password Confirmation Field’, ‘required|matches[password_field]’);
     
    // basic required field with IPv4 validation
    $this->form_validation->set_rules(‘valid_ip_field’, ‘Valid IP Field’, ‘required|valid_ip[ipv4]’);
     
    if ($this->form_validation->run() == FALSE)
    {
        $this->load->view(‘validate_form’);
    }
    else
    {
        // load success template…
        echo «It’s all Good!»;
    }
}

Поскольку мы уже загрузили библиотеку проверки формы в конструктор, вы можете получить к ней доступ, используя соглашение $this->form_validation .

Метод set_rules используется для привязки правила проверки к полю формы. Обычно требуется три аргумента:

  • Первый аргумент — это имя поля формы.
  • Второй аргумент — это метка, которая используется для ссылки на поле формы при отображении сообщения об ошибке для этого поля.
  • Третий аргумент — это правило, которое вы хотите применить к полю формы. Библиотека проверки формы поставляется с множеством встроенных правил, которые вы уже можете использовать.

Давайте рассмотрим некоторые из этих правил, поскольку мы использовали их в базовом методе.

Одним из наиболее часто используемых правил является required правило, которое делает поле формы обязательным.

1
2
// basic required field
$this->form_validation->set_rules(‘text_field’, ‘Text Field One’, ‘required’);

Далее, если вы хотите создать поле формы определенной длины, вы можете использовать правила min_length и max_length .

1
2
3
4
5
// basic required field with minimum length
$this->form_validation->set_rules(‘min_text_field’, ‘Text Field Two’, ‘required|min_length[8]’);
       
// basic required field with maximum length
$this->form_validation->set_rules(‘max_text_field’, ‘Text Field Three’, ‘required|max_length[20]’);

Первый гарантирует, что min_text_field формы min_text_field является обязательным, и пользователь должен ввести в него не менее восьми символов. Второй устанавливает ограничение на максимальное количество символов, которое можно ввести в текстовом поле max_text_field , в дополнение к тому, что оно является обязательным.

Возможно, вы заметили, что мы использовали | Оператор применять несколько правил одновременно. Это называется каскадом, и мы вернемся к нему позже.

С другой стороны, если вы хотите создать поле формы точной длины, вы можете использовать правило точной длины.

1
2
// basic required field with exact length
$this->form_validation->set_rules(‘exact_text_field’, ‘Text Field Four’, ‘required|exact_length[12]’);

Что если вы хотите проверить поле формы только в алфавитном или буквенно-цифровом формате?

1
2
3
4
5
// basic required field but alphabets only
$this->form_validation->set_rules(‘alphabets_text_field’, ‘Text Field Five’, ‘required|alpha’);
       
// basic required field but alphanumeric only
$this->form_validation->set_rules(‘alphanumeric_text_field’, ‘Text Field Six’, ‘required|alpha_numeric’);

Следующий кандидат — подтверждение по электронной почте.

1
2
// basic email field with email validation
$this->form_validation->set_rules(‘valid_email_field’, ‘Email Field’, ‘required|valid_email’);

Далее, правило matches позволяет сравнивать значение поля формы со значением другого поля формы. Лучшим примером этого является поле пароля, которое должно соответствовать полю подтверждения пароля при отправке формы.

1
2
3
// password field with confirmation field matching rule
$this->form_validation->set_rules(‘password_field’, ‘Password One’, ‘required’);
$this->form_validation->set_rules(‘password_confirmation_field’, ‘Password Confirmation Field’, ‘required|matches[password_field]’);

Последний пример в нашем основном методе касается проверки IP-адреса.

Правило valid_ip проверяет IP-адрес по первому переданному аргументу. В следующем примере мы ищем только IP-адреса типа ipv4!

1
2
// basic required field with IPv4 validation
$this->form_validation->set_rules(‘valid_ip_field’, ‘Valid IP Field’, ‘required|valid_ip[ipv4]’);

Вот и все, что касается базовой проверки в CodeIgniter.

В этом разделе мы рассмотрим каскадирование и предварительную подготовку, которые позволяют объединять несколько правил проверки за один раз.

На самом деле, я бы сказал, что мы тщательно использовали каскадирование в наших предыдущих примерах. Вспомните тот оператор канала, который использовался для объединения нескольких правил — и да, так называемые правила каскадной проверки.

Возьмите код cascade метода.

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
public function cascade()
{
    // basic required field with cascaded rules
    $this->form_validation->set_rules(‘text_field’, ‘Text Field One’, ‘required|alpha|min_length[8]|max_length[20]’);
      
    if ($this->form_validation->run() == FALSE)
    {
        $this->load->view(‘validate_form’);
    }
    else
    {
        // load success template…
        echo «It’s all Good!»;
    }
}

Как показано в примере выше, мы применили четыре правила проверки, разделенных | оператор в текстовое поле text_field . Таким образом, для успешной проверки формы в этом случае необходимо пройти все правила!

Попробуйте и посмотрите, как это работает!

Далее, есть предварительная настройка, которая позволяет вам применять определенные операции к отправляемым данным. Чаще всего вы хотите удалить начальные и конечные пробелы в данных, представленных пользователем. Вероятно, первое, что приходит на ум в этом случае, — это использовать функцию обрезки, и хорошая новость в том, что вы можете использовать ее!

Это именно то, что делает наш метод prep .

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
public function prep()
{
    // basic required field with trim prepping applied
    $this->form_validation->set_rules(‘min_text_field’, ‘Text Field Two’, ‘trim|required|min_length[8]’);
 
    if ($this->form_validation->run() == FALSE)
    {
        $this->load->view(‘validate_form’);
    }
    else
    {
        // load success template…
        echo «It’s all Good!»;
    }
}

Как видите, мы использовали слово trim в дополнение к правилам валидации. Таким образом, данные сначала обрезаются, а затем проходят другие правила проверки. Фактически, вы можете использовать любую функцию PHP, которая принимает один аргумент согласно документации CodeIgniter.

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

Если у вас была возможность запустить приведенные выше примеры, вы могли заметить, что отображаемые пользователю сообщения об ошибках довольно систематичны и генерируются машиной. Может быть, вы хотите быть более креативным и изменить их в определенных случаях.

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

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
public function custom_message()
{
    // field with custom error message
    $this->form_validation->set_rules(‘alphabets_text_field’, ‘Text Field Five’, ‘required|alpha’,
      array(‘required’=>’Please enter Text Field Five!’,’alpha’=>’Only alphabets please!’));
 
    if ($this->form_validation->run() == FALSE)
    {
        $this->load->view(‘validate_form’);
    }
    else
    {
        // load success template…
        echo «It’s all Good!»;
    }
}

Обратите внимание на четвертый аргумент, предоставленный методу set_rules . Он содержит массив пользовательских сообщений проверки для каждого правила проверки, и ключом каждого элемента массива является само правило проверки.

1
2
3
4
array(
    ‘required’=>’Please enter Text Field Five!’,
    ‘alpha’=>’Only alphabets please!’
)

Попробуйте, и вы должны увидеть наши пользовательские сообщения об ошибках! Довольно круто, а?

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

Чтобы продемонстрировать это, мы создадим пользовательский обратный вызов проверки, а позже мы увидим, как его использовать вместе с методом set_rules .

Для начала давайте custom_rule метод custom_rule .

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
public function custom_rule()
{
    // field with custom validation callback passed
    $this->form_validation->set_rules(‘text_field’, ‘Text Field Five’, ‘callback_custom_validation’);
 
    if ($this->form_validation->run() == FALSE)
    {
        $this->load->view(‘validate_form’);
    }
    else
    {
        // load success template…
        echo «It’s all Good!»;
    }
}

Он ничем не отличается от обычного set_rules метода set_rules за исключением того, что мы предоставили настраиваемый обратный вызов проверки custom_validation вместо любого основного правила проверки. Здесь важно отметить, что вам нужно добавить префикс настраиваемого обратного callback_ проверки к callback_ когда вы передаете его в качестве аргумента.

Далее, давайте реализуем пользовательский обратный вызов проверки.

01
02
03
04
05
06
07
08
09
10
11
12
public function custom_validation($field_value)
{
    if ($field_value == » || $field_value == ‘demo’)
    {
        $this->form_validation->set_message(‘custom_validation’, «Come on, don’t act like spammer!»);
        return FALSE;
    }
    else
    {
        return TRUE;
    }
}

При вызове пользовательского обратного вызова проверки значение, введенное пользователем, будет передано в качестве первого аргумента. Таким образом, $field_value содержит значение, введенное пользователем, для которого вы можете реализовать свою собственную логику проверки.

В приведенном выше примере вы должны увидеть сообщение об ошибке, если вы введете пустое значение или demo в текстовое поле Text Field Five . Важно отметить, что когда вы устанавливаете сообщение об ошибке с set_message метода set_message , первым аргументом является имя самого метода обратного вызова проверки.

И это история пользовательских обратных проверок.

Наконец, что не менее важно, именно конфигурация проверки заслуживает некоторого внимания, когда мы подходим к завершению этой статьи.

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

Например, database.php позволяет определять параметры, связанные с базой данных, а autoload.php позволяет определять компоненты, которые должны автоматически загружаться во время начальной загрузки приложения.

Таким же образом вы можете создать файл form_validation.php в каталоге config и использовать этот файл для определения правил проверки на уровне приложения, которые могут использоваться глобально. Если это звучит чуждо вам, нет лучшего способа понять это, чем на самом деле смотреть на практический пример.

Создайте файл application/config/form_validation.php со следующим содержимым.

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
<?php
$config = array(
    array(
        ‘field’ => ‘text_field’,
        ‘label’ => ‘Text Field One’,
        ‘rules’ => ‘required’
    ),
    array(
        ‘field’ => ‘min_text_field’,
        ‘label’ => ‘Text Field Two’,
        ‘rules’ => ‘required|min_length[8]’
    ),
    array(
        ‘field’ => ‘max_text_field’,
        ‘label’ => ‘Text Field Three’,
        ‘rules’ => ‘required|max_length[20]’
    )
);

Теперь давайте быстро посмотрим, как выглядит наш метод configuration .

01
02
03
04
05
06
07
08
09
10
11
12
13
14
public function configuration()
{
    // if you pass group id, only elements in that group will be validated
    // $this->form_validation->run(‘group_one’)
    if ($this->form_validation->run() == FALSE)
    {
        $this->load->view(‘validate_form’);
    }
    else
    {
        // load success template…
        echo «It’s all Good!»;
    }
}

Попробуйте запустить http: // your-codeigniter-site / validation / configuration и отправить пустую форму. Вы увидите сообщения об ошибках для трех полей формы! Но подождите, откуда они берутся, так как мы не установили никаких правил проверки в нашем методе конфигурации?

Пользователи с острыми глазами заметили бы, что это автоматически application/config/form_validation.php из файла конфигурации проверки, определенного в application/config/form_validation.php . Разве это не удивительно? Это позволяет вам централизовать правила в одном месте и уменьшает дублирование кода в методах действия.

Фактически вы можете сгруппировать правила и применить проверку к полям только определенной группы. Посмотрим, как это сделать.

Замените код в application/config/form_validation.php следующим.

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
<?php
$config = array(
    ‘group_one’ => array(
        array(
            ‘field’ => ‘text_field’,
            ‘label’ => ‘Text Field One’,
            ‘rules’ => ‘required’
        )
    ),
    ‘group_two’ => array(
        array(
            ‘field’ => ‘min_text_field’,
            ‘label’ => ‘Text Field Two’,
            ‘rules’ => ‘required|min_length[8]’
        ),
        array(
            ‘field’ => ‘max_text_field’,
            ‘label’ => ‘Text Field Three’,
            ‘rules’ => ‘required|max_length[20]’
        )
    )
);

В вашем методе configuration найдите следующую строку:

1
if ($this->form_validation->run() == FALSE)

И заменить его на:

1
if ($this->form_validation->run(‘group_one’) == FALSE)

Теперь попробуйте отправить пустую форму, и вы увидите ошибку только для Text Field One . Это потому, что мы передали group_one в качестве идентификатора группы, поэтому будут проверяться только элементы в этой группе.

Наконец, давайте посмотрим на тип конфигурации, который позволяет вам определять правила на основе URL.

Замените код в application/config/form_validation.php следующим кодом.

1
2
3
4
5
6
7
8
9
$config = array(
    ‘validation/configuration’ => array(
        array(
            ‘field’ => ‘max_text_field’,
            ‘label’ => ‘Text Field Three’,
            ‘rules’ => ‘required|max_length[20]’
        )
    )
);

В этом типе конфигурации вам нужно использовать комбинацию имени контроллера и имени метода, разделенных символом / . Таким образом, вы можете определить правила для нескольких методов действий одновременно.

Теперь вы должны увидеть сообщение об ошибке для Text Field Three если вы попытаетесь отправить пустую форму по адресу http: // your-codeigniter-site / validation / configuration .

На этом история проверки конфигурации и этой статьи также заканчивается!

В этой статье мы подробно обсудили проверку формы в CodeIgniter.

Мы начали наше путешествие с базовых правил проверки, а затем перешли к более сложным темам, таким как каскадирование, подготовка и проверка конфигурации.

Я надеюсь, что вам понравилась эта статья, и вы можете поделиться своими ценными мнениями, используя канал ниже!