Hướng dẫn form validation in php and mysql - xác thực hình thức trong php và mysql


Các chương này và các chương tiếp theo cho thấy cách sử dụng PHP để xác nhận dữ liệu biểu mẫu.


Xác nhận hình thức PHP

Hãy suy nghĩ bảo mật khi xử lý các hình thức PHP!

Các trang này sẽ chỉ ra cách xử lý các biểu mẫu PHP với bảo mật trong tâm trí. Xác nhận đúng dữ liệu biểu mẫu là rất quan trọng để bảo vệ biểu mẫu của bạn khỏi tin tặc và người gửi thư rác!

Biểu mẫu HTML mà chúng tôi sẽ làm việc tại các chương này, chứa các trường đầu vào khác nhau: các trường văn bản bắt buộc và tùy chọn, nút radio và nút gửi:

Các quy tắc xác thực cho biểu mẫu trên như sau:

Đồng ruộngQuy tắc xác nhận
TênYêu cầu. + Chỉ phải chứa các chữ cái và khoảng trắng
E-mailYêu cầu. + Phải chứa một địa chỉ email hợp lệ (với @ và.)
Trang mạngKhông bắt buộc. Nếu có, nó phải chứa một URL hợp lệ
Bình luậnKhông bắt buộc. Trường đầu vào đa dòng (TextArea)
Giới tínhYêu cầu. Phải chọn một

Đầu tiên chúng ta sẽ xem mã HTML đơn giản cho biểu mẫu:



Trường văn bản

Tên, email và trường trang web là các yếu tố đầu vào văn bản và trường bình luận là một textarea. Mã HTML trông như thế này:

Tên: E-mail: Trang web: Nhận xét:
E-mail:
Website:
Comment:


Nút radio

Các trường giới tính là các nút radio và mã HTML trông như thế này:

Giới tính: Femalemalether
Female
Male
Other


Phần tử biểu mẫu

Mã HTML của biểu mẫu trông như thế này:

">

Khi biểu mẫu được gửi, dữ liệu biểu mẫu sẽ được gửi với Phương thức = "Post".

Biến $ _server ["php_elf"] là gì?

$ _Server ["php_elf"] là một biến siêu toàn cầu trả về tên tệp của tập lệnh hiện đang thực hiện.

Vì vậy, $ _Server ["php_elf"] gửi dữ liệu biểu mẫu đã gửi đến chính trang, thay vì nhảy đến một trang khác. Bằng cách này, người dùng sẽ nhận được thông báo lỗi trên cùng một trang với biểu mẫu.

Hàm htmlspecialchars () là gì?

The htmlspecialchars() function converts special characters to HTML entities. This means that it will replace HTML characters like < and > with < and >. This prevents attackers from exploiting the code by injecting HTML or Javascript code (Cross-site Scripting attacks) in forms.


Lưu ý lớn về bảo mật mẫu php

Biến $ _server ["php_elf"] có thể được sử dụng bởi tin tặc!

Nếu php_elf được sử dụng trong trang của bạn thì người dùng có thể nhập các lệnh chém (/) và sau đó một số lệnh scripting sesit (XSS) để thực thi.

Scripting Cross Site (XSS) là một loại lỗ hổng bảo mật máy tính thường được tìm thấy trong các ứng dụng web. XSS cho phép kẻ tấn công đưa tập lệnh phía máy khách vào các trang web được xem bởi những người dùng khác.

Giả sử chúng tôi có biểu mẫu sau trong một trang có tên là "test_form.php":

">

Khi biểu mẫu được gửi, dữ liệu biểu mẫu sẽ được gửi với Phương thức = "Post".

Khi biểu mẫu được gửi, dữ liệu biểu mẫu sẽ được gửi với Phương thức = "Post".

Biến $ _server ["php_elf"] là gì?

$ _Server ["php_elf"] là một biến siêu toàn cầu trả về tên tệp của tập lệnh hiện đang thực hiện.

Vì vậy, $ _Server ["php_elf"] gửi dữ liệu biểu mẫu đã gửi đến chính trang, thay vì nhảy đến một trang khác. Bằng cách này, người dùng sẽ nhận được thông báo lỗi trên cùng một trang với biểu mẫu.

alert('hacked')

Hàm htmlspecialchars () là gì?

Be aware of that any JavaScript code can be added inside the ">

Khi biểu mẫu được gửi, dữ liệu biểu mẫu sẽ được gửi với Phương thức = "Post".


Biến $ _server ["php_elf"] là gì?

$ _Server ["php_elf"] là một biến siêu toàn cầu trả về tên tệp của tập lệnh hiện đang thực hiện.

Vì vậy, $ _Server ["php_elf"] gửi dữ liệu biểu mẫu đã gửi đến chính trang, thay vì nhảy đến một trang khác. Bằng cách này, người dùng sẽ nhận được thông báo lỗi trên cùng một trang với biểu mẫu.

location.href('http://www.hacked.com')

Hàm htmlspecialchars () là gì?

The code is now safe to be displayed on a page or inside an e-mail.

Lưu ý lớn về bảo mật mẫu php

  1. Biến $ _server ["php_elf"] có thể được sử dụng bởi tin tặc!
  2. Nếu php_elf được sử dụng trong trang của bạn thì người dùng có thể nhập các lệnh chém (/) và sau đó một số lệnh scripting sesit (XSS) để thực thi.

Scripting Cross Site (XSS) là một loại lỗ hổng bảo mật máy tính thường được tìm thấy trong các ứng dụng web. XSS cho phép kẻ tấn công đưa tập lệnh phía máy khách vào các trang web được xem bởi những người dùng khác.

Chúng tôi sẽ đặt tên cho chức năng test_input ().

Bây giờ, chúng ta có thể kiểm tra từng biến $ _POST với hàm test_input () và tập lệnh trông như thế này:

Thí dụ

// define variables and set to empty values
$name = $email = $gender = $comment = $website = "";

if ($ _server ["request_method"] == "post") {& nbsp; $ name = test_input ($ _ post ["name"]); & nbsp; $ email = test_input ($ _ post ["email"]); & nbsp; $ trang web = test_input ($ _ post ["trang web"]); & nbsp; $ bình luận = test_input ($ _ post ["bình luận"]); & nbsp; $ giới tính = test_input ($ _ post ["Giới tính"]);}
  $name = test_input($_POST["name"]);
  $email = test_input($_POST["email"]);
  $website = test_input($_POST["website"]);
  $comment = test_input($_POST["comment"]);
  $gender = test_input($_POST["gender"]);
}

hàm test_input ($ data) {& nbsp; $ data = trim ($ data); & nbsp; $ data = stripslashes ($ data); & nbsp; $ data = htmlspecialchars ($ data); & nbsp; trả về $ dữ liệu; }?>
  $data = trim($data);
  $data = stripslashes($data);
  $data = htmlspecialchars($data);
  return $data;
}
?>

Chạy ví dụ »

Lưu ý rằng khi bắt đầu tập lệnh, chúng tôi kiểm tra xem biểu mẫu đã được gửi bằng $ _Server ["request_method"]. Nếu request_method là bài đăng, thì biểu mẫu đã được gửi - và nó phải được xác thực. Nếu nó chưa được gửi, hãy bỏ qua xác thực và hiển thị một biểu mẫu trống.

Tuy nhiên, trong ví dụ trên, tất cả các trường đầu vào là tùy chọn. Tập lệnh hoạt động tốt ngay cả khi người dùng không nhập bất kỳ dữ liệu nào.

Bước tiếp theo là thực hiện các trường đầu vào cần thiết và tạo thông báo lỗi nếu cần.



Xác thực hình thức trong PHP là gì?

Xác thực biểu mẫu là một quá trình cần thiết trước khi dữ liệu được nhập vào biểu mẫu được gửi đến cơ sở dữ liệu.Điều này được thực hiện để tránh các lỗi không cần thiết.Trong xác thực biểu mẫu PHP, tập lệnh kiểm tra dữ liệu trong các trường tương ứng dựa trên các quy tắc do nhà phát triển đặt và trả về lỗi nếu nó không đáp ứng các yêu cầu.a necessary process before the data entered in the form is submitted to the database. This is done to avoid unnecessary errors. In PHP Form validation, the script checks for data in respective fields based on the rules set by the developer, and returns an error if it does not meet the requirements.

Các kỹ thuật được sử dụng để xác nhận và xác minh biểu mẫu trong PHP là gì?

Giả sử chúng tôi có biểu mẫu sau trong một trang có tên là "test_form.php": ... đầu vào của bạn:.

Có bao nhiêu loại xác nhận trong PHP?

Có 2 loại xác thực có sẵn trong PHP: Xác thực phía máy khách: Loại xác thực này được thực hiện trên trình duyệt web của máy khách.Xác thực phía máy chủ: Dữ liệu khi gửi sau đó được gửi đến máy chủ để thực hiện kiểm tra xác thực ở đó.2 kinds of validation available in PHP: Client-Side Validation: This type of validation is done on the web browser of the client machine. Server-Side Validation: The data on submission is then sent to the server machine to perform validation checks there.

PHP có hỗ trợ xác thực không?

PHP xác nhận dữ liệu ở phía máy chủ, được gửi bởi biểu mẫu HTML.Bạn cần xác thực một vài điều: Chuỗi trống.Xác thực chuỗi.. You need to validate a few things: Empty String. Validate String.