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