Làm thế nào các biểu mẫu được hình thành trong php giải thích nó bằng một ví dụ phù hợp?

Theo nhu cầu phổ biến, đây là một số hướng dẫn cơ bản để thiết lập trình xử lý biểu mẫu trong PHP để xác minh đầu vào của người dùng và gửi email hoặc hiển thị thông báo lỗi trong trường hợp xác thực không thành công

Biểu mẫu HTML mẫu

Đây là mã HTML và PHP cho biểu mẫu mà chúng ta sẽ làm việc với

Your Name*

Email Address*

Subject

Enquiry*

Biểu mẫu sẽ giống như sau - biểu mẫu phản hồi đơn giản cơ bản của bạn

Đối với mục đích thử nghiệm, chúng tôi đã xóa tất cả Xác thực biểu mẫu JavaScript và Xác thực biểu mẫu HTML5 thông thường để biểu mẫu có thể được gửi và xác thực đơn giản bằng PHP trên máy chủ

Bạn sẽ nhận thấy rằng chúng tôi đã sử dụng PHP để chèn hành động biểu mẫu làm trang hiện tại. Đó là bởi vì chúng ta đang sử dụng kỹ thuật "redirect-after-POST" như minh họa ở đây

isset[$_POST['sendfeedback'], $_POST['name'], $_POST['email'], $_POST['subject'], $_POST['message']]] { $name = $_POST['name']; $email = $_POST['email']; $subject = $_POST['subject']; $message = $_POST['message']; if[!$name] { $errorMsg = "Please enter your Name"; } elseif[!$email || !preg_match["/^\S+@\S+$/", $email]] { $errorMsg = "Please enter a valid Email address"; } elseif[!$message] { $errorMsg = "Please enter your comment in the Message box"; } else { // send email and redirect $to = "feedback@example.com"; if[!$subject] $subject = "Contact from website"; $headers = "From: webmaster@example.com" . "\r\n"; mail[$to, $subject, $message, $headers]; header["Location: //www.example.com/thankyou.html"]; exit; } } ?>

Tất cả các thành phần biểu mẫu HTML, ngoài các hộp kiểm và nút radio không được chọn, sẽ xuất hiện trong mảng $_POST, ngay cả khi giá trị trống. Điều này bao gồm nút gửi, trong trường hợp này chúng tôi đã đặt tên là gửi phản hồi. Đặt tên cho nút rất hữu ích trong trường hợp có nhiều biểu mẫu trên trang

Điều đầu tiên mà trình xử lý biểu mẫu thực hiện là kiểm tra xem tất cả các trường trong biểu mẫu của chúng ta, bao gồm cả nút, có xuất hiện trong mảng POST không. Sau đó, chúng tôi trích xuất các giá trị có liên quan để thử nghiệm

Thử nghiệm ở đây khá thô sơ. Trên thực tế, chúng tôi có các chức năng đặc biệt để xác thực địa chỉ email và các loại dữ liệu khác - cũng như hầu hết các thư viện JavaScript. Chúng tôi cũng có các chức năng nâng cao hơn để gửi email

Đối với các biểu mẫu công khai, bạn nên thêm CAPTCHA hoặc thiết bị tương tự, như bạn có thể thấy trong biểu mẫu Phản hồi của chúng tôi bên dưới, hoặc có nguy cơ bị tấn công bởi spam bots

Vị trí của mã

Mã PHP cần xuất hiện ở đầu trang - trước khi bất kỳ HTML hoặc khoảng trắng nào được hiển thị. Nếu không, chuyển hướng sẽ thất bại với cảnh báo phổ biến "Không thể sửa đổi thông tin tiêu đề - tiêu đề đã được gửi"

Mã cuối cùng của bạn sẽ trông giống như thế này

// php form handler and redirect ?>......

Việc JavaScript xuất hiện ở đâu trên trang thực sự không quan trọng, dù là nội tuyến hay dưới dạng liên kết

Hiển thị thông báo lỗi

Khi biểu mẫu được gửi, nhưng không được xác thực, quá trình thực thi mã sẽ chuyển đến trang. Tất cả những gì chúng ta cần làm là kiểm tra thông báo lỗi và hiển thị nó trên trang

*",htmlspecialchars[$errorMsg],"\n\n"; } ?>

Một lần nữa, phiên bản nâng cao hơn sẽ đặt thông báo lỗi bên cạnh trường bị ảnh hưởng và thực hiện điều này cho nhiều trường cùng một lúc. Trong phần trình diễn ở trên, chúng tôi đã bao gồm thông báo lỗi ở đầu biểu mẫu

Để biết các phương pháp xác thực nâng cao hơn, bao gồm CAPTCHA hoặc trình bày biểu mẫu phản hồi trong cửa sổ phương thức, bạn có thể xem một số bài viết liên quan bên dưới

Tránh các biến toàn cầu

Trong ví dụ trước, chúng ta đã phạm sai lầm trong việc làm ô nhiễm không gian biến toàn cục. Chúng ta có thể tránh điều này và làm cho mã của chúng ta trở nên mô-đun hơn và có thể tái sử dụng bằng cách gọi nó là một hàm

// form handler function validateFeedbackForm[$arr] { extract[$arr]; if[!isset[$name, $email, $subject, $message]] return; if[!$name] { return "Please enter your Name"; } if[!preg_match["/^\S+@\S+$/", $email]] { return "Please enter a valid Email address"; } if[!$subject] $subject = "Contact from website"; if[!$message] { return "Please enter your comment in the Message box"; } // send email and redirect $to = "feedback@example.com"; $headers = "From: webmaster@example.com" . "\r\n"; mail[$to, $subject, $message, $headers]; header["Location: //www.example.com/thankyou.html"]; exit; } // execution starts here if[isset[$_POST['sendfeedback']]] { // call form handler $errorMsg = validateFeedbackForm[$_POST]; } ?>

Phương thức giải nén biến các cặp khóa/giá trị từ mảng $_POST thành các biến riêng biệt, nhưng chỉ dành cho phạm vi của hàm

Chúng tôi có thể tiến xa hơn và tạo một lớp xác thực biểu mẫu, với các phương thức riêng biệt để xác thực văn bản, email, ngày tháng, v.v., nhưng bản thân đó là một dự án

Các biểu mẫu được tạo như thế nào trong PHP?

Chúng ta có thể tạo và sử dụng biểu mẫu trong PHP. Để lấy dữ liệu biểu mẫu, chúng ta cần sử dụng các siêu toàn cục PHP $_GET và $_POST . Yêu cầu biểu mẫu có thể là get hoặc post. Để lấy dữ liệu từ get request, chúng ta cần sử dụng $_GET, cho post request $_POST.

Biểu mẫu trong PHP là gì?

Biểu mẫu được dùng để lấy thông tin đầu vào từ người dùng và gửi thông tin đó đến máy chủ web để xử lý . Sơ đồ dưới đây minh họa quá trình xử lý biểu mẫu. Biểu mẫu là một thẻ HTML chứa các mục giao diện người dùng đồ họa như hộp nhập liệu, hộp kiểm nút radio, v.v.

Biểu mẫu và quy trình tạo trong PHP là gì?

Nó chỉ định vị trí mà dữ liệu biểu mẫu phải được gửi khi biểu mẫu được gửi . Nó chỉ định phương thức HTTP sẽ được sử dụng khi biểu mẫu được gửi. Các giá trị có thể là get và post. Nếu phương thức get được sử dụng, dữ liệu biểu mẫu sẽ hiển thị cho người dùng trong url.

Hình thức tự xử lý giải thích nó với ví dụ là gì?

Trang tự xử lý. Thay vào đó, chúng ta có thể viết điều này bằng trang tự xử lý. một tập lệnh PHP duy nhất, e. g. , head_to_hat. php . khi được yêu cầu mà không có dữ liệu người dùng, nó sẽ xuất ra dạng. khi được yêu cầu với dữ liệu người dùng, nó sẽ nhận dữ liệu, thực hiện phép tính và xuất lại biểu mẫu nhưng kèm theo kết quả.

Chủ Đề