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.