- Hiểu được việc truyền gởi dữ liệu từ CLIENT đến SERVER thông qua Request POST.
- Cách tạo FORM và cấu hình FORM đúng chuẩn.
- Cách gởi request POST với dữ liệu đính kèm từ Client đến Server thông qua FORM.
- Cách FORM mã hóa dữ liệu và đến trang xử lý trên Server thông qua thanh địa chỉ URL.
- Cách phân rã khối dữ liệu trên SERVER và xử lý bằng PHP.
Lưu đồ gởi dữ liệu thông qua yêu cầu POST (Request POST) bằng FORM từ Client đến Server
Yêu cầu POST (Request POST) được gởi từ FORM
Phía Client
Yêu cầu (request) được gởi từ Form nhập liệu của người dùng, với cấu hình của Form như sau:- Trong Form cần khai báo các thuộc tính:
- Phương thức
method=POST
- Chỉ định File xử lý trên Server
action="duong_dan_den_file_xu_ly.php"
- Phương thức
- Các thành phần Nhập liệu (inputs) trong Form cần phải được đặt tên, sử dụng thuộc tính
name="ten_cu_the"
- Sau khi Form Submit, dữ liệu sẽ được gởi kèm trong Request Body
Phía Server
Nếu Request POST được gởi đến Server, thì việc phân tách dữ liệu sẽ do biến$_POST['param_name']
đảm nhận.
Ví dụ:
<?php // Phân tách dữ liệu từ khối dữ liệu được truyền đến từ CLIENT (Request POST) // Biến lưu trữ thông tin Username $ten_tai_khoan = $_POST['username']; // Biến lưu trữ thông tin Password $mat_khau = $_POST['password']; // Biến lưu trữ thông tin Full name $ho_ten = $_POST['full_name']; // Xử lý các logic/Nghiệp vụ ... // Lưu vào database ... echo "Chào mừng bạn {$ho_ten} đã đăng ký thành công. Tên tài khoản để đăng nhập Hệ thống là: ${ten_tai_khoan}."; ?>
Các trường hợp thường dùng Request POST
Do dữ liệu được gởi bằng phương thức POST (method POST) sẽ không hiển thị trên thanh URL mà được đính kèm trong Request Body. Do đó, sẽ được sử dụng trong các trường hợp cần phải che dấu dữ liệu. Thường được sử dụng trong các trường hợp sau:- Khi thực hiện các chức năng Thêm, Sửa, Xóa (Create, Edit, Delete)
- Cần một lượng lớn thông tin được gởi đến Server để xử lý
- ...
Ví dụ tạo Form thu thập thông tin và Xử lý Đăng ký
Step 1: tạo file hiển thị Form cho người dùng (End User) Nhập liệu
- Tạo file
form-dang-ky.php
- Code PHP
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Xử lý Request POST trong PHP | Nền Tảng .vn</title> </head> <body> <h1>Form đăng ký | NenTang.vn</h1> <!-- 1. Thuộc tính action="" dùng để chỉ định địa chỉ file PHP - nơi sẽ nhận dữ liệu từ CLIENT gởi đến và xử lý theo các LOGIC nào đó... 2. Phương thức (method) dùng để gởi request có thể sử dụng: GET hoặc POST * Nếu sử dụng phương thức POST: - Dữ liệu trong FORM sẽ được truyền đóng gói và đính kèm trong Request Body khi gởi đến Server http://domain/action.php Ví dụ: http://localhost/hoc-php/xu-ly-form-dang-ky.php --> <form name="frmRegister" id="frmRegister" action="xu-ly-dang-ky.php" method="POST"> <table border="1" width="600px" cellspacing="0px" cellpadding="10px"> <tr> <td>Tài khoản:</td> <td> <!-- Thuộc tính name="" cần có trong các thành phần Nhập liệu (input, select, ...) FORM sẽ đóng gói dữ liệu người dùng (End User) nhập liệu vào đúng tên được đặt trong thuộc tính name="" Ví dụ: đặt tên là name="username" --> <input type="text" name="username" id="username" /> </td> </tr> <tr> <td>Mật khẩu:</td> <td> <!-- Thuộc tính name="" cần có trong các thành phần Nhập liệu (input, select, ...) FORM sẽ đóng gói dữ liệu người dùng (End User) nhập liệu vào đúng tên được đặt trong thuộc tính name="" Ví dụ: đặt tên là name="password" --> <input type="text" name="password" id="password" /> </td> </tr> <tr> <td>Họ tên:</td> <td> <!-- Thuộc tính name="" cần có trong các thành phần Nhập liệu (input, select, ...) FORM sẽ đóng gói dữ liệu người dùng (End User) nhập liệu vào đúng tên được đặt trong thuộc tính name="" Ví dụ: đặt tên là name="full_name" --> <input type="text" name="full_name" id="full_name" /> </td> </tr> <tr> <td colspan="2" align="center"> <input type="submit" value="Đăng ký" /> </td> </tr> </table> </form> </body> </html>
Step 2: Phân tách dữ liệu từ Request POST gởi đến và xử lý logic/nghiệp vụ Đăng ký trên Server
- Tạo file
xu-ly-dang-ký.php
- Code:
<?php // Phân tách dữ liệu từ khối dữ liệu được truyền đến từ CLIENT (Request POST) // Biến lưu trữ thông tin Username $ten_tai_khoan = $_POST['username']; // Biến lưu trữ thông tin Password $mat_khau = $_POST['password']; // Biến lưu trữ thông tin Full name $ho_ten = $_POST['full_name']; // Xử lý các logic/Nghiệp vụ ... // Lưu vào database ... echo "Chào mừng bạn {$ho_ten} đã đăng ký thành công. Tên tài khoản để đăng nhập Hệ thống là: ${ten_tai_khoan}."; ?>
Mục lục
Chương trình học
- Bức tranh tổng thể về Lập trình WEB 1
- Cài đặt môi trường Lập trình PHP 1
-
PHP căn bản
6
- PHP là gì? Viết chương trình PHP đầu tiên #1237
- Các kiểu dữ liệu (data types), biến (variables), hằng số (constant), toán tử (operators) trong ngôn ngữ lập trình PHP #1242
- Bài tập Kiểm tra cú pháp PHP #1285
- Trình diễn (render) dữ liệu Đơn giản ra giao diện (HTML, CSS, JS) sử dụng PHP #8696
- Trình diễn (render) dữ liệu Danh sách Array ra giao diện (HTML, CSS, JS) sử dụng PHP #9564
- Bài tập trình diện (render) tổng hợp: hiển thị mẫu in Hóa đơn bán hàng Nền tảng #11773
- Cấu trúc điều khiển trong PHP
- PHP Nâng cao 7
- Bài tập thực hành 3
- Thực hiện Dự án PHP thực tế mẫu - sử dụng PHP thuần 3
- Thu thập và Xử lý dữ liệu từ Client đến Server trong PHP 3
-
Thao tác với Cơ sở dữ liệu MySQL
9
- Quy trình (workflow) xử lý thao tác với cơ sở dữ liệu MySQL trong PHP #9623
- Tạo kết nối đến CSDL MySQL trong PHP #8116
- Thực thi câu lệnh INSERT trong PHP #8118
- Thực thi câu lệnh UPDATE trong PHP #8120
- Thực thi câu lệnh DELETE trong PHP #8122
- Thực thi câu lệnh SELECT trong PHP #8124
- Thực thi câu lệnh INSERT với FORM trong PHP #8126
- Thực thi câu lệnh DELETE với FORM trong PHP #8130
- Thực thi câu lệnh UPDATE với FORM trong PHP #8133
-
Dự án thực tế mẫu (PHP thuần) - Trang web bán hàng trực tuyến - Thiết kế Backend
17
- Khái niệm về bố cục (layouts) trong thiết kế giao diện Web / App #10538
- Thiết kế bố cục (layouts) cho giao diện Backend sử dụng PHP thuần #8740
- Tạo chức năng CRUD (Xem-Read, Thêm-Create, Sửa-Edit, Xóa-Delete) cho danh mục Phẳng - Index #8748
- Tạo chức năng CRUD (Xem-Read, Thêm-Create, Sửa-Edit, Xóa-Delete) cho danh mục Phẳng - Create #9291
- Tạo chức năng CRUD (Xem-Read, Thêm-Create, Sửa-Edit, Xóa-Delete) cho danh mục Phẳng - Delete #9293
- Tạo chức năng CRUD (Xem-Read, Thêm-Create, Sửa-Edit, Xóa-Delete) cho danh mục Phẳng - Edit #9292
- Ràng buộc dữ liệu (validation) #8761
- Tạo chức năng CRUD (Xem-Read, Thêm-Create, Sửa-Edit, Xóa-Delete) cho danh mục cho Liên kết Khóa ngoại #8781
- Tạo chức năng CRUD (Xem-Read, Thêm-Create, Sửa-Edit, Xóa-Delete) upload hình Sản phẩm (upload đơn, mỗi lần 1 file) #8799
- Tạo trang Đăng nhập trong Backend #8823
- Tạo trang Đăng xuất trong Backend #8826
- Tạo Web API lấy dữ liệu báo cáo thống kê #8834
- Tạo trang Bảng tin (Dashboard) #8758
- Tạo chức năng Quản lý Đơn hàng dạng Master Detail (lưu một dòng cha và nhiều dòng con) - Index #8856
- Tạo chức năng Quản lý Đơn hàng dạng Master Detail (lưu một dòng cha và nhiều dòng con) - In ấn Print #8858
- Tạo chức năng Quản lý Đơn hàng dạng Master Detail (lưu một dòng cha và nhiều dòng con) - Xóa Delete #8862
- Tạo chức năng Quản lý Đơn hàng dạng Master Detail (lưu một dòng cha và nhiều dòng con) - Thêm mới Create #8861
-
Dự án thực tế mẫu (PHP thuần) - Trang web bán hàng trực tuyến - Thiết kế Frontend
7
- Thiết kế bố cục (layouts) cho giao diện Frontend sử dụng PHP thuần #8868
- Thực hiện Trang chủ Frontend #8873
- Thực hiện Trang Giới thiệu About #8876
- Thực hiện Trang Liên hệ Contact (Có gởi mail Thông báo) #8879
- Thực hiện Trang Chi tiết Sản phẩm Product Detail #8944
- Thực hiện Trang Giỏ hàng Cart #8978
- Thực hiện Trang Thanh toán #9049
- Bảo mật Trang web PHP 2
-
Tài liệu Tham khảo
11
- Tài liệu Tham khảo #7933
- Cách export (dump) cơ sở dữ liệu MySQL bằng HeidiSQL #8343
- Đệ quy đa cấp trong PHP #8495
- Tạo bố cục (layout) trang web sử dụng INCLUDE REQUIRE trong PHP #8523
- Bài tập tổng hợp - Tạo trang web đọc Truyện Tranh và Tiểu Thuyết Online #9006
- Cách triển khai Web lên Hosting free ByetHost #9052
- Nguyên nhân và cách xử lý lỗi Warning: Cannot modify header information - headers already sent by #9917
- Cách triển khai Web lên Hosting free 000WebHost #9959
- Cách tích hợp chứng thực tài khoản bằng Google vào trang web #9973
- Source code Tham khảo Learning.NenTang.vn #10394
- Database mẫu ví dụ Bán hàng Salomon #11808
- Nộp đồ án 1
-
Thao tác với cơ sở dữ liệu MySQL bằng kỹ thuật AJAX
8
- Tạo API cho chức năng CRUD (Xem-Read, Thêm-Create, Sửa-Edit, Xóa-Delete) bằng kỹ thuật AJAX cho danh mục Phẳng - Index #9777
- Tạo API cho chức năng CRUD (Xem-Read, Thêm-Create, Sửa-Edit, Xóa-Delete) bằng kỹ thuật AJAX cho danh mục Phẳng - Create #9781
- Tạo API cho chức năng CRUD (Xem-Read, Thêm-Create, Sửa-Edit, Xóa-Delete) bằng kỹ thuật AJAX cho danh mục Phẳng - Edit #9783
- Tạo API cho chức năng CRUD (Xem-Read, Thêm-Create, Sửa-Edit, Xóa-Delete) bằng kỹ thuật AJAX cho danh mục Phẳng - Delete #9784
- Tạo chức năng CRUD (Xem-Read, Thêm-Create, Sửa-Edit, Xóa-Delete) bằng kỹ thuật AJAX cho danh mục Phẳng - Index #9773
- Tạo chức năng CRUD (Xem-Read, Thêm-Create, Sửa-Edit, Xóa-Delete) bằng kỹ thuật AJAX cho danh mục Phẳng - Create #9774
- Tạo chức năng CRUD (Xem-Read, Thêm-Create, Sửa-Edit, Xóa-Delete) bằng kỹ thuật AJAX cho danh mục Phẳng - Edit #9775
- Tạo chức năng CRUD (Xem-Read, Thêm-Create, Sửa-Edit, Xóa-Delete) bằng kỹ thuật AJAX cho danh mục Phẳng - Delete #9776
- Video Live Stream 1
- Lập trình hướng đối tượng OOP (Object Oriented Programming) trong PHP 1
Các bài học
Bài học trước Bài học tiếp theo
Chương trình học
Bao gồm Module, Chương, Bài học, Bài tập, Kiểm tra...Chương trình học
- Bức tranh tổng thể về Lập trình WEB 1
- Cài đặt môi trường Lập trình PHP 1
-
PHP căn bản
6
- PHP là gì? Viết chương trình PHP đầu tiên #1237
- Các kiểu dữ liệu (data types), biến (variables), hằng số (constant), toán tử (operators) trong ngôn ngữ lập trình PHP #1242
- Bài tập Kiểm tra cú pháp PHP #1285
- Trình diễn (render) dữ liệu Đơn giản ra giao diện (HTML, CSS, JS) sử dụng PHP #8696
- Trình diễn (render) dữ liệu Danh sách Array ra giao diện (HTML, CSS, JS) sử dụng PHP #9564
- Bài tập trình diện (render) tổng hợp: hiển thị mẫu in Hóa đơn bán hàng Nền tảng #11773
- Cấu trúc điều khiển trong PHP
- PHP Nâng cao 7
- Bài tập thực hành 3
- Thực hiện Dự án PHP thực tế mẫu - sử dụng PHP thuần 3
- Thu thập và Xử lý dữ liệu từ Client đến Server trong PHP 3
-
Thao tác với Cơ sở dữ liệu MySQL
9
- Quy trình (workflow) xử lý thao tác với cơ sở dữ liệu MySQL trong PHP #9623
- Tạo kết nối đến CSDL MySQL trong PHP #8116
- Thực thi câu lệnh INSERT trong PHP #8118
- Thực thi câu lệnh UPDATE trong PHP #8120
- Thực thi câu lệnh DELETE trong PHP #8122
- Thực thi câu lệnh SELECT trong PHP #8124
- Thực thi câu lệnh INSERT với FORM trong PHP #8126
- Thực thi câu lệnh DELETE với FORM trong PHP #8130
- Thực thi câu lệnh UPDATE với FORM trong PHP #8133
-
Dự án thực tế mẫu (PHP thuần) - Trang web bán hàng trực tuyến - Thiết kế Backend
17
- Khái niệm về bố cục (layouts) trong thiết kế giao diện Web / App #10538
- Thiết kế bố cục (layouts) cho giao diện Backend sử dụng PHP thuần #8740
- Tạo chức năng CRUD (Xem-Read, Thêm-Create, Sửa-Edit, Xóa-Delete) cho danh mục Phẳng - Index #8748
- Tạo chức năng CRUD (Xem-Read, Thêm-Create, Sửa-Edit, Xóa-Delete) cho danh mục Phẳng - Create #9291
- Tạo chức năng CRUD (Xem-Read, Thêm-Create, Sửa-Edit, Xóa-Delete) cho danh mục Phẳng - Delete #9293
- Tạo chức năng CRUD (Xem-Read, Thêm-Create, Sửa-Edit, Xóa-Delete) cho danh mục Phẳng - Edit #9292
- Ràng buộc dữ liệu (validation) #8761
- Tạo chức năng CRUD (Xem-Read, Thêm-Create, Sửa-Edit, Xóa-Delete) cho danh mục cho Liên kết Khóa ngoại #8781
- Tạo chức năng CRUD (Xem-Read, Thêm-Create, Sửa-Edit, Xóa-Delete) upload hình Sản phẩm (upload đơn, mỗi lần 1 file) #8799
- Tạo trang Đăng nhập trong Backend #8823
- Tạo trang Đăng xuất trong Backend #8826
- Tạo Web API lấy dữ liệu báo cáo thống kê #8834
- Tạo trang Bảng tin (Dashboard) #8758
- Tạo chức năng Quản lý Đơn hàng dạng Master Detail (lưu một dòng cha và nhiều dòng con) - Index #8856
- Tạo chức năng Quản lý Đơn hàng dạng Master Detail (lưu một dòng cha và nhiều dòng con) - In ấn Print #8858
- Tạo chức năng Quản lý Đơn hàng dạng Master Detail (lưu một dòng cha và nhiều dòng con) - Xóa Delete #8862
- Tạo chức năng Quản lý Đơn hàng dạng Master Detail (lưu một dòng cha và nhiều dòng con) - Thêm mới Create #8861
-
Dự án thực tế mẫu (PHP thuần) - Trang web bán hàng trực tuyến - Thiết kế Frontend
7
- Thiết kế bố cục (layouts) cho giao diện Frontend sử dụng PHP thuần #8868
- Thực hiện Trang chủ Frontend #8873
- Thực hiện Trang Giới thiệu About #8876
- Thực hiện Trang Liên hệ Contact (Có gởi mail Thông báo) #8879
- Thực hiện Trang Chi tiết Sản phẩm Product Detail #8944
- Thực hiện Trang Giỏ hàng Cart #8978
- Thực hiện Trang Thanh toán #9049
- Bảo mật Trang web PHP 2
-
Tài liệu Tham khảo
11
- Tài liệu Tham khảo #7933
- Cách export (dump) cơ sở dữ liệu MySQL bằng HeidiSQL #8343
- Đệ quy đa cấp trong PHP #8495
- Tạo bố cục (layout) trang web sử dụng INCLUDE REQUIRE trong PHP #8523
- Bài tập tổng hợp - Tạo trang web đọc Truyện Tranh và Tiểu Thuyết Online #9006
- Cách triển khai Web lên Hosting free ByetHost #9052
- Nguyên nhân và cách xử lý lỗi Warning: Cannot modify header information - headers already sent by #9917
- Cách triển khai Web lên Hosting free 000WebHost #9959
- Cách tích hợp chứng thực tài khoản bằng Google vào trang web #9973
- Source code Tham khảo Learning.NenTang.vn #10394
- Database mẫu ví dụ Bán hàng Salomon #11808
- Nộp đồ án 1
-
Thao tác với cơ sở dữ liệu MySQL bằng kỹ thuật AJAX
8
- Tạo API cho chức năng CRUD (Xem-Read, Thêm-Create, Sửa-Edit, Xóa-Delete) bằng kỹ thuật AJAX cho danh mục Phẳng - Index #9777
- Tạo API cho chức năng CRUD (Xem-Read, Thêm-Create, Sửa-Edit, Xóa-Delete) bằng kỹ thuật AJAX cho danh mục Phẳng - Create #9781
- Tạo API cho chức năng CRUD (Xem-Read, Thêm-Create, Sửa-Edit, Xóa-Delete) bằng kỹ thuật AJAX cho danh mục Phẳng - Edit #9783
- Tạo API cho chức năng CRUD (Xem-Read, Thêm-Create, Sửa-Edit, Xóa-Delete) bằng kỹ thuật AJAX cho danh mục Phẳng - Delete #9784
- Tạo chức năng CRUD (Xem-Read, Thêm-Create, Sửa-Edit, Xóa-Delete) bằng kỹ thuật AJAX cho danh mục Phẳng - Index #9773
- Tạo chức năng CRUD (Xem-Read, Thêm-Create, Sửa-Edit, Xóa-Delete) bằng kỹ thuật AJAX cho danh mục Phẳng - Create #9774
- Tạo chức năng CRUD (Xem-Read, Thêm-Create, Sửa-Edit, Xóa-Delete) bằng kỹ thuật AJAX cho danh mục Phẳng - Edit #9775
- Tạo chức năng CRUD (Xem-Read, Thêm-Create, Sửa-Edit, Xóa-Delete) bằng kỹ thuật AJAX cho danh mục Phẳng - Delete #9776
- Video Live Stream 1
- Lập trình hướng đối tượng OOP (Object Oriented Programming) trong PHP 1
Bài học trước Bài học tiếp theo