Xác thực biểu mẫu php trước khi gửi

Bản tóm tắt. trong hướng dẫn này, bạn sẽ tìm hiểu về xác thực biểu mẫu PHP, cách xác thực dữ liệu biểu mẫu và cách hiển thị thông báo lỗi nếu thông tin nhập của người dùng không hợp lệ

Giới thiệu về xác thực biểu mẫu PHP

Khi xử lý một biểu mẫu, điều quan trọng là phải xác thực đầu vào của người dùng để đảm bảo rằng dữ liệu ở định dạng hợp lệ

Có hai loại xác thực. phía máy khách và phía máy chủ

Xác thực phía máy khách được thực hiện trong trình duyệt web của người dùng. Để xác thực dữ liệu ở phía máy khách, bạn có thể sử dụng xác thực HTML5 hoặc JavaScript. Xác thực phía máy khách nhằm mục đích hỗ trợ người dùng hợp pháp nhập dữ liệu ở định dạng hợp lệ trước khi gửi tới máy chủ

Tuy nhiên, xác thực phía máy khách không ngăn người dùng độc hại gửi dữ liệu có khả năng khai thác ứng dụng

Xác thực phía máy chủ xác thực dữ liệu trong máy chủ web bằng PHP. Để xác thực dữ liệu trong PHP, bạn có thể sử dụng hàm

html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <link rel="stylesheet" href="css/style.css"> <title>Subscribetitle> head> <body> <main>

Code language: HTML, XML (xml)
0 và

html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <link rel="stylesheet" href="css/style.css"> <title>Subscribetitle> head> <body> <main>

Code language: HTML, XML (xml)
1

Ví dụ xác thực biểu mẫu PHP

Chúng tôi sẽ xây dựng một biểu mẫu đăng ký email bao gồm tính năng xác thực. Biểu mẫu có các thành phần đầu vào tên và email và nút gửi

Xác thực biểu mẫu php trước khi gửi
Xác thực biểu mẫu php trước khi gửi

Nếu bạn không nhập tên và/hoặc email và nhấp vào nút đăng ký, biểu mẫu sẽ hiển thị thông báo lỗi. Ngoài ra, nếu bạn nhập địa chỉ email không hợp lệ, biểu mẫu sẽ hiển thị một thông báo lỗi khác

Lưu ý rằng chúng tôi không sử dụng xác thực phía máy khách cho biểu mẫu này để giúp kiểm tra dễ dàng hơn. Trong thực tế, bạn cũng nên sử dụng xác thực phía máy khách

Sắp xếp thư mục và tập tin

Đầu tiên, tạo cấu trúc tệp và thư mục như sau

. ├── css │ └── style.css ├── inc │ ├── get.php │ ├── post.php │ ├── header.php │ ├── footer.php │ └── .htaccess └── index.php

Code language: plaintext (plaintext)

Bảng sau đây mô tả mục đích của từng tệp

FileDirectoryDescriptionindex. php. Chứa logic chính của formheader. phpincChứa codefooter tiêu đề. phpincChứa bộ mã chân trang. phpincChứa formpost đăng ký email. phpincChứa mã để xử lý kiểu gửi biểu mẫu. csscssChứa mã CSS

tiêu đề. php

Phần sau hiển thị tệp

html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <link rel="stylesheet" href="css/style.css"> <title>Subscribetitle> head> <body> <main>

Code language: HTML, XML (xml)
2

html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <link rel="stylesheet" href="css/style.css"> <title>Subscribetitle> head> <body> <main>

Code language: HTML, XML (xml)

Tệp

html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <link rel="stylesheet" href="css/style.css"> <title>Subscribetitle> head> <body> <main>

Code language: HTML, XML (xml)
2 liên kết với tệp

html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <link rel="stylesheet" href="css/style.css"> <title>Subscribetitle> head> <body> <main>

Code language: HTML, XML (xml)
4 trong thư mục

html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <link rel="stylesheet" href="css/style.css"> <title>Subscribetitle> head> <body> <main>

Code language: HTML, XML (xml)
5

cuối trang. php

Và tệp

html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <link rel="stylesheet" href="css/style.css"> <title>Subscribetitle> head> <body> <main>

Code language: HTML, XML (xml)
6 chỉ chứa các thẻ đóng tương ứng với các thẻ mở trong tệp

html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <link rel="stylesheet" href="css/style.css"> <title>Subscribetitle> head> <body> <main>

Code language: HTML, XML (xml)
2

html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <link rel="stylesheet" href="css/style.css"> <title>Subscribetitle> head> <body> <main>

Code language: HTML, XML (xml)
0

mục lục. php

Tệp

html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <link rel="stylesheet" href="css/style.css"> <title>Subscribetitle> head> <body> <main>

Code language: HTML, XML (xml)
8 chứa logic chính của biểu mẫu

html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <link rel="stylesheet" href="css/style.css"> <title>Subscribetitle> head> <body> <main>

Code language: HTML, XML (xml)
2

Cách thức hoạt động của

html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <link rel="stylesheet" href="css/style.css"> <title>Subscribetitle> head> <body> <main>

Code language: HTML, XML (xml)
8

Đầu tiên, tải mã từ cả hai tệp

html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <link rel="stylesheet" href="css/style.css"> <title>Subscribetitle> head> <body> <main>

Code language: HTML, XML (xml)
2 và

html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <link rel="stylesheet" href="css/style.css"> <title>Subscribetitle> head> <body> <main>

Code language: HTML, XML (xml)
6 bằng cách sử dụng cấu trúc

html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <link rel="stylesheet" href="css/style.css"> <title>Subscribetitle> head> <body> <main>

Code language: HTML, XML (xml)
02 ở đầu và cuối tệp để tạo đầu trang và chân trang

Thứ hai, xác định mảng

html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <link rel="stylesheet" href="css/style.css"> <title>Subscribetitle> head> <body> <main>

Code language: HTML, XML (xml)
03 để lưu trữ các thông báo lỗi và mảng

html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <link rel="stylesheet" href="css/style.css"> <title>Subscribetitle> head> <body> <main>

Code language: HTML, XML (xml)
04 để lưu trữ các giá trị biểu mẫu đã nhập. Nếu một phần tử đầu vào có dữ liệu không hợp lệ, thì

html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <link rel="stylesheet" href="css/style.css"> <title>Subscribetitle> head> <body> <main>

Code language: HTML, XML (xml)
8 sẽ hiển thị giá trị đã nhập được lưu trữ trong

html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <link rel="stylesheet" href="css/style.css"> <title>Subscribetitle> head> <body> <main>

Code language: HTML, XML (xml)
04

Thứ ba, hiển thị biểu mẫu nếu phương thức yêu cầu HTTP là GET bằng cách tải get. tập tin php. Sau khi bạn vào

Cuối cùng, tải mã trong

html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <link rel="stylesheet" href="css/style.css"> <title>Subscribetitle> head> <body> <main>

Code language: HTML, XML (xml)
07 để xử lý việc gửi biểu mẫu nếu phương thức yêu cầu HTTP là POST. Nếu biểu mẫu có bất kỳ lỗi nào, thì

html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <link rel="stylesheet" href="css/style.css"> <title>Subscribetitle> head> <body> <main>

Code language: HTML, XML (xml)
03 sẽ không trống. Trong trường hợp này, hãy hiển thị lại biểu mẫu với các thông báo lỗi được lưu trong mảng

html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <link rel="stylesheet" href="css/style.css"> <title>Subscribetitle> head> <body> <main>

Code language: HTML, XML (xml)
03 và các giá trị đã nhập được lưu trong mảng

html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <link rel="stylesheet" href="css/style.css"> <title>Subscribetitle> head> <body> <main>

Code language: HTML, XML (xml)
04

lấy. php

Tệp

html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <link rel="stylesheet" href="css/style.css"> <title>Subscribetitle> head> <body> <main>

Code language: HTML, XML (xml)
21 chứa biểu mẫu

. ├── css │ └── style.css ├── inc │ ├── get.php │ ├── post.php │ ├── header.php │ ├── footer.php │ └── .htaccess └── index.php

Code language: plaintext (plaintext)
6

Cách thức hoạt động của

html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <link rel="stylesheet" href="css/style.css"> <title>Subscribetitle> head> <body> <main>

Code language: HTML, XML (xml)
21

  • Đầu tiên, hãy điền các phần tử đầu vào tên và email bằng các giá trị đã nhập được lưu trữ trong mảng

    html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <link rel="stylesheet" href="css/style.css"> <title>Subscribetitle> head> <body> <main>

    Code language: HTML, XML (xml)
    04 chỉ khi các giá trị này tồn tại
  • Thứ hai, hiển thị các thông báo lỗi được lưu trữ trong mảng

    html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <link rel="stylesheet" href="css/style.css"> <title>Subscribetitle> head> <body> <main>

    Code language: HTML, XML (xml)
    03 nếu chúng tồn tại

bưu kiện. php

Sau đây hiển thị mã của tệp

html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <link rel="stylesheet" href="css/style.css"> <title>Subscribetitle> head> <body> <main>

Code language: HTML, XML (xml)
07.

html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <link rel="stylesheet" href="css/style.css"> <title>Subscribetitle> head> <body> <main>

Code language: HTML, XML (xml)
07 xác thực dữ liệu biểu mẫu bằng cách sử dụng các hàm

html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <link rel="stylesheet" href="css/style.css"> <title>Subscribetitle> head> <body> <main>

Code language: HTML, XML (xml)
27 và

html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <link rel="stylesheet" href="css/style.css"> <title>Subscribetitle> head> <body> <main>

Code language: HTML, XML (xml)
28

html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <link rel="stylesheet" href="css/style.css"> <title>Subscribetitle> head> <body> <main>

Code language: HTML, XML (xml)
4

Làm thế nào nó hoạt động

Đầu tiên, xác định một số hằng số để lưu trữ các thông báo lỗi. Trong một ứng dụng trong thế giới thực, bạn có thể lưu trữ tất cả các tin nhắn trong một tệp riêng biệt

html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <link rel="stylesheet" href="css/style.css"> <title>Subscribetitle> head> <body> <main>

Code language: HTML, XML (xml)
5

Thứ hai, làm sạch và xác thực tên bằng hàm filter_input(). Nếu tên trống, hãy thêm thông báo lỗi vào mảng

html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <link rel="stylesheet" href="css/style.css"> <title>Subscribetitle> head> <body> <main>

Code language: HTML, XML (xml)
03

html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <link rel="stylesheet" href="css/style.css"> <title>Subscribetitle> head> <body> <main>

Code language: HTML, XML (xml)
7

Thứ ba, làm sạch và xác thực email bằng các chức năng

html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <link rel="stylesheet" href="css/style.css"> <title>Subscribetitle> head> <body> <main>

Code language: HTML, XML (xml)
27 và

html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <link rel="stylesheet" href="css/style.css"> <title>Subscribetitle> head> <body> <main>

Code language: HTML, XML (xml)
28. Nếu email trống hoặc không hợp lệ, hãy thêm thông báo lỗi tương ứng vào mảng

html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <link rel="stylesheet" href="css/style.css"> <title>Subscribetitle> head> <body> <main>

Code language: HTML, XML (xml)
03

html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <link rel="stylesheet" href="css/style.css"> <title>Subscribetitle> head> <body> <main>

Code language: HTML, XML (xml)
1

Cuối cùng nếu form không có lỗi thì hiện thông báo xác nhận

html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <link rel="stylesheet" href="css/style.css"> <title>Subscribetitle> head> <body> <main>

Code language: HTML, XML (xml)
2

Để hoàn thành biểu mẫu, bạn có thể lưu dữ liệu liên hệ vào cơ sở dữ liệu hoặc gọi API của dịch vụ tiếp thị qua email để thêm liên hệ vào danh sách của bạn

Bạn sẽ tạo biểu mẫu và xác thực đầu vào biểu mẫu trong PHP như thế nào?

PHP xác thực dữ liệu ở phía máy chủ, được gửi bằng biểu mẫu HTML. Bạn cần xác thực một vài điều. chuỗi rỗng. .
$name = $_POST ["Tên"];
nếu (. preg_match ("/^[a-zA-z]*$/", $name) ) {
$ErrMsg = "Chỉ cho phép bảng chữ cái và khoảng trắng. “;
tiếng vang $ErrMsg;
} khác {
tiếng vang $name;

Mục đích của $_ Php_self là gì?

$_SERVER["PHP_SELF"] 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 thi. Vì vậy, $_SERVER["PHP_SELF"] gửi dữ liệu biểu mẫu đã gửi đến chính trang đó, thay vì chuyển sang 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.

Làm cách nào để kiểm tra biểu mẫu được gửi hay không trong PHP?

Sử dụng phương thức isset() trong PHP để kiểm tra biểu mẫu có được gửi thành công hay không . Trong mã, sử dụng hàm isset() để kiểm tra phương thức $_POST['submit']. Ghi nhớ thay cho gửi xác định tên của nút gửi. Sau khi nhấp vào nút gửi, hành động này sẽ hoạt động như phương thức POST.

Làm cách nào để hiển thị lỗi bên dưới trường nhập liệu trong PHP?

Để hiển thị đầu vào không hợp lệ trong PHP, đặt tên của hộp văn bản đầu vào trong HTML . Tất cả các trường trước tiên được kiểm tra các trường trống và sau đó nó được xác thực về tính chính xác. Nếu tất cả các trường đều chính xác thì nó hiển thị thông báo thành công.