Thông thường qua phương thức $_POST hoặc $_GET chúng ta nhận dữ liệu từ phương thức này. Trước khi sử dụng dữ liệu chúng ta sẽ kiểm tra (validation ) và lọc dữ liệu (filters )
Contents
- 1 Như vậy bạn có 2 bước để làm lọc dữ liệu là
- 2 Phần mở rộng bộ lọc filters trong php 7
- 3 Tại sao nên sử dụng hàm lọc dữ liệu?
- 4 Hàm lọc PHP_var ()
- 5 Làm sạch một chuỗi
- 6 Xác thực một số nguyên bằng cách sử dụng filters trong php 7
- 7 Xác thực địa chỉ IP sử dụng filters trong php 7
- 8 Làm sạch dữ liệu và xác thực (validation) một địa chỉ email
- 9 Làm sạch dữ liệu và xác thực một đường dẫn URL
Như vậy bạn có 2 bước để làm lọc dữ liệu là
Xác thực dữ liệu: Xác định xem dữ liệu có ở dạng thích hợp không.
Làm sạch dữ liệu: Loại bỏ bất kỳ ký tự không hợp pháp, ký tự lạ ra khỏi dữ liệu.
Phần mở rộng bộ lọc filters trong php 7
Các bộ lọc PHP 7 được sử dụng để xác nhận và vệ sinh đầu vào từ bên ngoài.
Phần mở rộng bộ lọc PHP 7 có nhiều chức năng cần thiết để kiểm tra đầu vào của người dùng và được thiết kế để giúp xác thực dữ liệu dễ dàng và nhanh chóng hơn
Ví dụ
1 2 3 4 5 6 7 8 9 10 11 |
<table> <tr> <td>Filter Name</td> <td>Filter ID</td> </tr> <?php foreach (filter_list() as $id =>$filter) { echo '<tr><td>' . $filter . '</td><td>' . filter_id($filter) . '</td></tr>'; } ?> </table> |
Tại sao nên sử dụng hàm lọc dữ liệu?
Nhiều ứng dụng web nhận đầu vào bên ngoài vào. Đầu vào, dữ liệu bên ngoài có thể là:
– Đầu vào của người dùng từ một biểu mẫu
– Cookies
– Dữ liệu dịch vụ web
– Biến được gửi từ máy chủ
– Kết quả truy vấn cơ sở dữ liệu
Hàm lọc PHP_var ()
Hàm filter_var () vừa xác thực và làm sạch dữ liệu.
Hàm filter_var () lọc một biến với một bộ lọc được chỉ định. Phải mất hai phần dữ liệu:
Biến bạn muốn kiểm tra
Loại kiểm tra sử dụng
Làm sạch một chuỗi
Ví dụ sau sử dụng hàm filter_var () để xóa tất cả các thẻ HTML khỏi chuỗi:
1 2 3 4 5 |
<?php $str = "<h1>Học để làm!</h1>"; $newstr = filter_var($str, FILTER_SANITIZE_STRING); echo $newstr; ?> |
Xác thực một số nguyên bằng cách sử dụng filters trong php 7
Ví dụ sau sử dụng hàm filter_var () để kiểm tra xem biến $int có phải là số nguyên không. Nếu $int là một số nguyên, đầu ra của mã bên dưới sẽ là: “Số nguyên là hợp lệ”. Nếu $int không phải là số nguyên, đầu ra sẽ là: “Số nguyên không hợp lệ”:
ví dụ
1 2 3 4 5 6 7 8 9 |
<?php $int = 100; if (!filter_var($int, FILTER_VALIDATE_INT) === false) { echo("Số nguyên hợp lệ"); } else { echo("Số nguyên không hợp lệ"); } ?> |
Ghi chú: hàm filter_var () và với 0
Trong ví dụ trên, nếu biến $int được đặt thành 0, hàm trên sẽ trả về “Số nguyên không hợp lệ”. Để giải quyết vấn đề này, sử dụng mã dưới đây:
Thêm vào ví dụ trên
1 2 3 4 5 6 7 8 9 |
<?php $int = 0; if (filter_var($int, FILTER_VALIDATE_INT) === 0 || !filter_var($int, FILTER_VALIDATE_INT) === false) { echo("Số nguyên hợp lệ"); } else { echo("Số nguyên không hợp lệ"); } ?> |
Xác thực địa chỉ IP sử dụng filters trong php 7
Ví dụ sau sử dụng hàm filter_var () trong php 7 để kiểm tra xem biến $ip có phải là địa chỉ IP hợp lệ hay không:
1 2 3 4 5 6 7 8 9 |
<?php $ip = "127.0.0.1"; if (!filter_var($ip, FILTER_VALIDATE_IP) === false) { echo("$ip là địa chỉ IP hợp lệ"); } else { echo("$ip là địa chỉ ip không hợp lệ"); } ?> |
Làm sạch dữ liệu và xác thực (validation) một địa chỉ email
Ví dụ sau sử dụng hàm filter_var () để xóa tất cả các ký tự không hợp lệ khỏi biến $email, sau đó kiểm tra xem đó có phải là địa chỉ email hợp lệ không:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
<?php $email = "khacntt@gmail.com"; // Xóa tất cả ký tự lạ từ địa chỉ email $email = filter_var($email, FILTER_SANITIZE_EMAIL); // kiểm tra xác thực giá trị email if (!filter_var($email, FILTER_VALIDATE_EMAIL) === false) { echo("$email là giá trị hợp lệ"); } else { echo("$email là giá trị không hợp lệ"); } ?> |
Làm sạch dữ liệu và xác thực một đường dẫn URL
Ví dụ sau sử dụng hàm filter_var () để xóa tất cả các ký tự không hợp lệ khỏi URL, sau đó kiểm tra xem $url có phải là URL hợp lệ không:
Ví dụ
1 2 3 4 5 6 7 8 9 10 11 12 13 |
<?php $url = "http://hocdelam.info"; // Xóa tất cả ký tự lạ từ đường dẫn URL $url = filter_var($url, FILTER_SANITIZE_URL); // Kiểm tra giá trị đường dẫn URL if (!filter_var($url, FILTER_VALIDATE_URL) === false) { echo("$url đúng là đường dẫn URL"); } else { echo("$url không phải là đường dẫn URL"); } ?> |
Chúc bạn thành công với tác vụ lọc dữ liệu filters trong php 7