CodeIgniter - walidacja formularza
Walidacja to ważny proces podczas tworzenia aplikacji internetowej. Gwarantuje, że dane, które otrzymujemy, są prawidłowe i ważne do przechowywania lub przetwarzania. CodeIgniter bardzo ułatwiło to zadanie. Zrozummy ten proces na prostym przykładzie.
Przykład
Utwórz plik widoku myform.php i zapisz poniższy kod w formacie application/views/myform.php. Ta strona wyświetli formularz, w którym użytkownik może przesłać swoje imię i nazwisko, a my zweryfikujemy tę stronę, aby upewnić się, że nie powinna być pusta podczas przesyłania.
<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>
Utwórz plik widoku formsuccess.php i zapisz go w application/views/formsuccess.php. Ta strona zostanie wyświetlona, jeśli formularz zostanie pomyślnie zweryfikowany.
<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>
Utwórz plik kontrolera Form.php i zapisz go w application/controller/Form.php. Ten formularz również pokaże błędy, jeśli nie zostanie poprawnie zweryfikowany lub przekierowany doformsuccess.php strona.
<?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');
}
}
}
?>
Dodaj następujący wiersz application/config/routes.php.
$route['validation'] = 'Form';
Wykonajmy ten przykład, odwiedzając następujący adres URL w przeglądarce. Ten adres URL może być inny w zależności od Twojej witryny.
http://yoursite.com/index.php/validation
Spowoduje to wyświetlenie następującego ekranu -
Dodaliśmy walidację w kontrolerze - Namejest wymagane przed wysłaniem formularza. Tak więc, jeśli klikniesz przycisk przesyłania bez wpisywania niczego w polu nazwy, zostaniesz poproszony o wprowadzenie nazwy przed przesłaniem, jak pokazano na poniższym ekranie.
Po pomyślnym wpisaniu nazwy zostaniesz przekierowany do ekranu, jak pokazano poniżej.
W powyższym przykładzie użyliśmy wymaganego ustawienia reguły. W CodeIgniterze dostępnych jest wiele reguł, które opisano poniżej.
Odniesienie do reguł walidacji
Poniżej znajduje się lista wszystkich natywnych reguł, które są dostępne do użycia -
Reguła | Parametr | Opis | Przykład |
---|---|---|---|
required |
Nie | Zwraca FALSE, jeśli element formularza jest pusty. | |
matches |
tak | Zwraca FALSE, jeśli element formularza nie pasuje do elementu w parametrze. | pasuje do [form_item] |
regex_match |
tak | Zwraca FALSE, jeśli element formularza nie pasuje do wyrażenia regularnego. | regex_match [/ regex /] |
differs |
tak | Zwraca FALSE, jeśli element formularza nie różni się od elementu w parametrze. | differs [form_item] |
is_unique |
tak | Zwraca FALSE, jeśli element formularza nie jest unikatowy dla tabeli i nazwy pola w parametrze. Uwaga - aby ta reguła działała, musi być włączona funkcja Query Builder . | is_unique [table.field] |
min_length |
tak | Zwraca FALSE, jeśli element formularza jest krótszy niż wartość parametru. | min_length [3] |
max_length |
tak | Zwraca FALSE, jeśli element formularza jest dłuższy niż wartość parametru. | max_length [12] |
exact_length |
tak | Zwraca FALSE, jeśli element formularza nie jest dokładnie wartością parametru. | exact_length [8] |
greater_than |
tak | Zwraca FALSE, jeśli element formularza jest mniejszy lub równy wartości parametru lub nie jest liczbą. | Greater_than [8] |
greater_than_equal_to |
tak | Zwraca FALSE, jeśli element formularza jest mniejszy niż wartość parametru lub nie jest liczbą. | Greater_than_equal_to [8] |
less_than |
tak | Zwraca FALSE, jeśli element formularza jest większy lub równy wartości parametru lub nie jest liczbą. | less_than [8] |
less_than_equal_to |
tak | Zwraca FALSE, jeśli element formularza jest większy niż wartość parametru lub nie jest liczbą. | less_than_equal_to [8] |
in_list |
tak | Zwraca FALSE, jeśli element formularza nie znajduje się na z góry określonej liście. | in_list [czerwony, niebieski, zielony] |
alpha |
Nie | Zwraca FALSE, jeśli element formularza zawiera cokolwiek innego niż znaki alfabetyczne. | |
alpha_numeric |
Nie | Zwraca FALSE, jeśli element formularza zawiera cokolwiek innego niż znaki alfanumeryczne. | |
alpha_numeric_spaces |
Nie | Zwraca FALSE, jeśli element formularza zawiera cokolwiek innego niż znaki alfanumeryczne lub spacje. Powinien być używany po przycięciu, aby uniknąć odstępów na początku lub na końcu | |
alpha_dash |
Nie | Zwraca FALSE, jeśli element formularza zawiera cokolwiek innego niż znaki alfanumeryczne, podkreślenia lub myślniki. | |
numeric |
Nie | Zwraca FALSE, jeśli element formularza zawiera cokolwiek innego niż znaki numeryczne. | |
integer |
Nie | Zwraca FALSE, jeśli element formularza zawiera cokolwiek innego niż liczba całkowita. | |
decimal |
Nie | Zwraca FALSE, jeśli element formularza zawiera coś innego niż liczba dziesiętna. | |
is_natural |
Nie | Zwraca FALSE, jeśli element formularza zawiera cokolwiek innego niż liczba naturalna - 0, 1, 2, 3 itd. | |
is_natural_no_zero |
Nie | Zwraca FALSE, jeśli element formularza zawiera coś innego niż liczba naturalna, ale nie zero - 1, 2, 3 itd. | |
valid_url |
Nie | Zwraca FALSE, jeśli element formularza nie zawiera prawidłowego adresu URL. | |
valid_email |
Nie | Zwraca FALSE, jeśli element formularza nie zawiera prawidłowego adresu e-mail. | |
valid_emails |
Nie | Zwraca FALSE, jeśli jakakolwiek wartość podana na liście oddzielonej przecinkami nie jest prawidłowym adresem e-mail. | |
valid_ip |
Nie | Zwraca FALSE, jeśli podany adres IP jest nieprawidłowy. Akceptuje opcjonalny parametr „ipv4” lub „ipv6” w celu określenia formatu IP. | |
valid_base64 |
Nie | Zwraca FALSE, jeśli podany ciąg zawiera cokolwiek innego niż prawidłowe znaki Base64. |