CodeIgniter - Xác thực biểu mẫu

Xác thực là một quá trình quan trọng trong khi xây dựng ứng dụng web. Nó đảm bảo rằng dữ liệu mà chúng tôi nhận được là phù hợp và hợp lệ để lưu trữ hoặc xử lý. CodeIgniter đã làm cho nhiệm vụ này trở nên rất dễ dàng. Hãy để chúng tôi hiểu quá trình này với một ví dụ đơn giản.

Thí dụ

Tạo tệp xem myform.php và lưu đoạn mã dưới đây vào application/views/myform.php. Trang này sẽ hiển thị biểu mẫu mà người dùng có thể gửi tên của mình và chúng tôi sẽ xác nhận trang này để đảm bảo rằng nó không được để trống khi gửi.

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

Tạo tệp xem formsuccess.php và lưu nó vào application/views/formsuccess.php. Trang này sẽ được hiển thị nếu biểu mẫu được xác thực thành công.

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

Tạo tệp điều khiển Form.php và lưu nó vào application/controller/Form.php. Biểu mẫu này sẽ hiển thị lỗi nếu nó không được xác thực đúng cách hoặc được chuyển hướng đếnformsuccess.php trang.

<?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'); 
         } 
      }
   }
?>

Thêm dòng sau vào application/config/routes.php.

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

Hãy để chúng tôi thực hiện ví dụ này bằng cách truy cập URL sau trong trình duyệt. URL này có thể khác nhau dựa trên trang web của bạn.

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

Nó sẽ tạo ra màn hình sau:

Chúng tôi đã thêm xác thực trong bộ điều khiển - Namelà trường bắt buộc trước khi gửi biểu mẫu. Vì vậy, nếu bạn nhấp vào nút gửi mà không nhập bất cứ điều gì vào trường tên, thì bạn sẽ được yêu cầu nhập tên trước khi gửi như hiển thị trong màn hình bên dưới.

Sau khi nhập tên thành công, bạn sẽ được chuyển đến màn hình như hình bên dưới.

Trong ví dụ trên, chúng tôi đã sử dụng cài đặt quy tắc bắt buộc. Có nhiều quy tắc có sẵn trong CodeIgniter, được mô tả bên dưới.

Tham chiếu quy tắc xác thực

Sau đây là danh sách tất cả các quy tắc gốc có sẵn để sử dụng:

Qui định Tham số Sự miêu tả Thí dụ

required

Không Trả về FALSE nếu phần tử biểu mẫu trống.

matches

Đúng Trả về FALSE nếu phần tử biểu mẫu không khớp với phần tử trong tham số. khớp với [form_item]

regex_match

Đúng Trả về FALSE nếu phần tử biểu mẫu không khớp với biểu thức chính quy. regex_match [/ regex /]

differs

Đúng Trả về FALSE nếu phần tử biểu mẫu không khác với phần tử trong tham số. khác nhau [form_item]

is_unique

Đúng Trả về FALSE nếu phần tử biểu mẫu không phải là duy nhất đối với bảng và tên trường trong tham số. Lưu ý - Quy tắc này yêu cầu bật Trình tạo truy vấn để hoạt động. is_unique [table.field]

min_length

Đúng Trả về FALSE nếu phần tử biểu mẫu ngắn hơn giá trị tham số. min_length [3]

max_length

Đúng Trả về FALSE nếu phần tử biểu mẫu dài hơn giá trị tham số. max_length [12]

exact_length

Đúng Trả về FALSE nếu phần tử biểu mẫu không phải là giá trị tham số chính xác. chính xác_ độ dài [8]

greater_than

Đúng Trả về FALSE nếu phần tử biểu mẫu nhỏ hơn hoặc bằng giá trị tham số hoặc không phải là số. great_than [8]

greater_than_equal_to

Đúng Trả về FALSE nếu phần tử biểu mẫu nhỏ hơn giá trị tham số hoặc không phải là số. great_than_equal_to [8]

less_than

Đúng Trả về FALSE nếu phần tử biểu mẫu lớn hơn hoặc bằng giá trị tham số hoặc không phải là số. less_than [8]

less_than_equal_to

Đúng Trả về FALSE nếu phần tử biểu mẫu lớn hơn giá trị tham số hoặc không phải là số. less_than_equal_to [8]

in_list

Đúng Trả về FALSE nếu phần tử biểu mẫu không nằm trong danh sách xác định trước. in_list [đỏ, lam, lục]

alpha

Không Trả về FALSE nếu phần tử biểu mẫu chứa bất kỳ thứ gì khác ngoài ký tự chữ cái.

alpha_numeric

Không Trả về FALSE nếu phần tử biểu mẫu chứa bất kỳ thứ gì khác ngoài ký tự chữ và số.

alpha_numeric_spaces

Không Trả về FALSE nếu phần tử biểu mẫu chứa bất kỳ thứ gì khác ngoài ký tự chữ và số hoặc khoảng trắng. Nên sử dụng sau khi trim để tránh khoảng trống ở đầu hoặc cuối

alpha_dash

Không Trả về FALSE nếu phần tử biểu mẫu chứa bất kỳ thứ gì khác ngoài ký tự chữ và số, dấu gạch dưới hoặc dấu gạch ngang.

numeric

Không Trả về FALSE nếu phần tử biểu mẫu chứa bất kỳ thứ gì khác ngoài ký tự số.

integer

Không Trả về FALSE nếu phần tử biểu mẫu chứa bất kỳ thứ gì khác ngoài số nguyên.

decimal

Không Trả về FALSE nếu phần tử biểu mẫu chứa bất kỳ thứ gì khác ngoài số thập phân.

is_natural

Không Trả về FALSE nếu phần tử biểu mẫu chứa bất kỳ thứ gì khác ngoài số tự nhiên - 0, 1, 2, 3, v.v.

is_natural_no_zero

Không Trả về FALSE nếu phần tử biểu mẫu chứa bất kỳ thứ gì khác ngoài số tự nhiên, nhưng không phải số 0 - 1, 2, 3, v.v.

valid_url

Không Trả về FALSE nếu phần tử biểu mẫu không chứa URL hợp lệ.

valid_email

Không Trả về FALSE nếu phần tử biểu mẫu không chứa địa chỉ email hợp lệ.

valid_emails

Không Trả về FALSE nếu bất kỳ giá trị nào được cung cấp trong danh sách được phân tách bằng dấu phẩy không phải là email hợp lệ.

valid_ip

Không Trả về FALSE nếu IP được cung cấp không hợp lệ. Chấp nhận tham số tùy chọn 'ipv4' hoặc 'ipv6' để chỉ định định dạng IP.

valid_base64

Không Trả về FALSE nếu chuỗi được cung cấp chứa bất kỳ thứ gì khác ngoài ký tự Base64 hợp lệ.