- Hiểu được việc truyền gởi dữ liệu từ CLIENT đến SERVER thông qua Request GET.
- Cách tạo FORM và cấu hình FORM đúng chuẩn.
- Cách gởi request GET 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 GET (Request GET) bằng FORM từ Client đến Server
Yêu cầu GET (Request GET) đượ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=GET
- 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 đóng gói trên thanh địa chỉ URL của trình duyệt theo quy cách như sau:
- http://domain/action.php?param1=value1¶m2=value2&...
Trong đó:
- "xu-ly-dang-nhap.php": là nơi Request GET sẽ được gởi đến trên Server
- Dấu "?" là ký tự phân cách giữa tên file xử lý (khai báo trong action) và các Tham số
- "username" và "password" là các Tham số (parameters) được khai báo trong FORM.
- "admin" và "123456" là các giá trị dữ liệu mà người dùng (End User) đã nhập liệu.
- Dấu "&" là ký tự phân cách giữa các cặp Tham số=Giá trị (param=value) với nhau.
Phía Server
Nếu Request GET được gởi đến Server, thì việc phân tách dữ liệu sẽ do biến$_GET['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 GET) // Biến lưu trữ thông tin Username $ten_tai_khoan = $_GET['username']; // Biến lưu trữ thông tin Password $mat_khau = $_GET['password']; ?>
Các trường hợp thường dùng Request GET
Do dữ liệu được gởi bằng phương thức GET (method GET) sẽ được đính kèm trên thanh URL. Do đó, không nên 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 Tìm kiếm theo nhiều tiêu chí; người dùng có khả năng Copy Link với các thông số tiêu chí đã tìm kiếm gởi cho bạn bè, ...
- Ví dụ: URL tìm kiếm các sản phẩm có tên là Samsung; giá tiền từ 3.000.000 đến 10.000.000; tại Cần thơ
- https://nentang.vn/timkiem.php?ten_san_pham=Samsung&gia_tien_tu=3000000&gia_tien_den=10000000&dia_diem=CanTho
Ví dụ tạo Form thu thập thông tin và Xử lý Đăng nhập
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-nhap.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 GET trong PHP | Nền Tảng .vn</title> </head> <body> <h1>Form đăng nhập | 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 GET: - Dữ liệu trong FORM sẽ được truyền theo dạng tham số trên địa chỉ URL theo định dạng sau: http://domain/action.php?param1=value1¶m2=value2... - Trong đó: + Các thông tin được gởi từ FORM đến SERVER (file action được chỉ định) sẽ được phân cách bởi dấu ? + Các tham số `param1`, `param2` là thuộc tính name của các thành phần Nhập liệu (inputs) trong FORM `value1`, `value2` là những thông tin người dùng (End user) nhập liệu trong FORM ... + Các thành phần Tham số sẽ được phân cách nhau bởi dấu & Ví dụ: http://localhost/hoc-php/xu-ly-form-dang-nhap.php?username=dnpcuong&password=123456 --> <form name="frmLogin" id="frmLogin" action="xu-ly-dang-nhap.php" method="GET"> <table border="1" width="300px" 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 colspan="2" align="center"> <input type="submit" value="Đăng nhập" /> </td> </tr> </table> </form> </body> </html>
Step 2: Phân tách dữ liệu từ Request Get gởi đến và xử lý logic/nghiệp vụ Đăng nhập trên Server
- Tạo file
xu-ly-dang-nhap.php
- Code:
<?php // Phân tách dữ liệu từ khối dữ liệu được truyền đến từ CLIENT (Request GET) // Biến lưu trữ thông tin Username $ten_tai_khoan = $_GET['username']; // Biến lưu trữ thông tin Password $mat_khau = $_GET['password']; // Xử lý các logic/Nghiệp vụ ... if($ten_tai_khoan == 'admin' && $mat_khau == '123456') { echo "<h1>Chào mừng bạn {$ten_tai_khoan} đã đăng nhập thành công!</h1>"; } else { echo "<h1>Đăng nhập Thất bại!</h1>"; } ?>
Kiểm tra kiến thức trong bài học này ?!
- Thế nào là
Request GET
? Request GET
được gởi thông qua đường nào?Query string URL
là gì?- Cú pháp truyền tham số bằng đường dẫn URL như thế nào?
Mục lục
Chương trình học
- Cơ sở dữ liệu
-
Thiết kế Cơ sở dữ liệu
12
- Mô hình dữ liệu Quan niệm CDM (Conceptual Data Model) #10551
- Mô hình dữ liệu Vật lý PDM (Physical Data Model) #10560
- [Bài tập 1.1] - Thực hành thiết kế sơ đồ CDM trang web Thương mại điện tử #10552
- [Bài tập 1.2] - Thực hành thiết kế sơ đồ PDM (ER) trang web Thương mại điện tử #10571
- [Bài tập 1.3] - Thực hành thiết kế sơ đồ CDM hệ thống Quản trị Thiết bị / Phòng học #10554
- [Bài tập 1.4] - Thực hành thiết kế sơ đồ PDM (ER) hệ thống Quản trị Thiết bị / Phòng học #10572
- [Bài tập 1.5] - Thực hành thiết kế sơ đồ CDM hệ thống Kênh phát nhạc #10556
- [Bài tập 1.6] - Thực hành thiết kế sơ đồ PDM (ER) hệ thống Kênh phát nhạc #10573
- [Bài tập 1.7] - Thực hành thiết kế sơ đồ CDM trang web Quản lý Truyện tranh / Tiểu thuyết #10569
- [Bài tập 1.8] - Thực hành thiết kế sơ đồ PDM (ER) trang web Quản lý Truyện tranh / Tiểu thuyết #10574
- [Bài tập 1.9] - Thực hành thiết kế sơ đồ CDM hệ thống Quản trị Nhân sự #10575
- [Bài tập 1.10] - Thực hành thiết kế sơ đồ PDM (ER) hệ thống Quản trị Nhân sự #10558
- Hệ quản trị Cơ sở dữ liệu MySQL - Tổng quan, khái niệm về database 2
- Hệ quản trị Cơ sở dữ liệu MySQL - Các lệnh tạo cấu trúc (schema database) 2
-
Hệ quản trị Cơ sở dữ liệu MySQL - Tạo cấu trúc database với HeidiSQL
9
- Tạo cơ sở dữ liệu (database) NetaShop - Sử dụng HeidiSQL #8587
- Tạo bảng (table) Danh mục phẳng - Sử dụng HeidiSQL #8582
- Tạo bảng (table) Danh mục có liên kết khóa ngoại (có quan hệ) - Sử dụng HeidiSQL #8597
- Tạo bảng (table) theo quan hệ Nhiều - Nhiều (N-N) - Sử dụng HeidiSQL #8619
- Tạo bảng (table) có Quan hệ Tự thân (self foreign key) - Sử dụng HeidiSQL #8664
- [Bài tập 2.1] - Thực hành tạo cấu trúc database với PDM (ER) trang web Thương mại điện tử #10598
- [Bài tập 2.2] - Thực hành tạo cấu trúc database với PDM (ER) trang web Quản lý Truyện tranh / Tiểu thuyết #10603
- Cách export (dump) cơ sở dữ liệu MySQL bằng HeidiSQL #8343
- [Bài tập 2.3] - Thực hành tạo cấu trúc database với PDM (ER) trang web Quản lý Bóng đá #11614
-
Hệ quản trị Cơ sở dữ liệu MySQL - Các lệnh cập nhật dữ liệu (Insert - Update - Delete)
5
- Câu lệnh Thêm dữ liệu (INSERT) #2663
- Câu lệnh Cập nhật dữ liệu (UPDATE) #2665
- Câu lệnh Xóa dữ liệu (DELETE) #2664
- [Bài tập 2.3] - Thực hành thao tác các câu lệnh cập nhật dữ liệu trang web Thương mại điện tử #10605
- [Bài tập 2.4] - Thực hành thao tác các câu lệnh cập nhật dữ liệu trang web Quản lý Truyện tranh / Tiểu thuyết #10625
- Hệ quản trị Cơ sở dữ liệu MySQL - Các lệnh truy vấn dữ liệu (Select query data) 3
-
Ngôn ngữ lập trình PHP - Cú pháp căn bản
13
- Sơ đồ vận hành của một Website #1311
- 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] - Tạo các trang web PHP cho phép Khách truy cập tương ứng từ địa chỉ web URL #10651
- [Bài tập] - Khai báo các biến dữ liệu Đơn giản trong PHP và Render dữ liệu Đơn giản ra giao diện (HTML, CSS, JS) sử dụng PHP #10669
- [Bài tập] - Khai báo các biến dữ liệu Mảng Array và Render dữ liệu Danh sách Array ra giao diện (HTML, CSS, JS) sử dụng PHP #10670
- [Bài tập] - Xét kết quả tốt nghiệp của Sinh viên dựa theo thang điểm 10 sử dụng PHP #10695
- [Bài tập] - Làm quen với vòng lặp FOR / FOREACH / WHILE / DO WHILE trong PHP #10704
- Hàm (function) trong PHP #10713
- Các hàm (functions) xử lý Ngày tháng (datetime) trong PHP #10727
- Các hàm (functions) kiểm tra Biến (Variable) và các hàm kiểm tra Kiểu dữ liệu (data types) của biến trong PHP #10728
- [Bài tập] - Làm quen với hàm (function) trong PHP #10721
- [Bài tập] - Làm quen và sử dụng các hàm (functions) thông dụng có sẵn trong PHP #10753
-
Ngôn ngữ lập trình PHP - Xử lý Request và Response
6
- Thu thập và Xử lý dữ liệu bằng Yêu cầu GET (Request GET) trong PHP #8704
- Thu thập và Xử lý dữ liệu bằng Yêu cầu POST (Request POST) trong PHP #8705
- [Bài tập] - Tạo Form Đăng nhập và truyền dữ liệu bằng Request POST trong PHP #10771
- [Bài tập] - Tạo Form Liên hệ và truyền dữ liệu bằng Request POST trong PHP #10772
- [Bài tập] - Tạo trang Danh sách Sinh viên và truyền dữ liệu chức năng Sửa/Xóa bằng Request GET trong PHP #10773
- Bài tập tạo Form Tìm kiếm Thu thập và Xử lý dữ liệu bằng Yêu cầu GET (Request GET) trong PHP #8717
- Ngôn ngữ lập trình PHP - Thiết kế bố cục (layouts) cho trang web 3
-
Ngôn ngữ lập trình PHP - Thao tác với Cơ sở dữ liệu MySQL
16
- 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 SELECT trong PHP #8124
- Thực thi câu lệnh INSERT trong PHP #8118
- Thực thi câu lệnh INSERT với FORM trong PHP #8126
- Thực thi câu lệnh UPDATE trong PHP #8120
- Thực thi câu lệnh UPDATE với FORM trong PHP #8133
- Thực thi câu lệnh DELETE trong PHP #8122
- Thực thi câu lệnh DELETE với FORM trong PHP #8130
- [Bài tập] - Tạo trang web hiển thị Danh sách các Truyện tranh/Tiểu thuyết hiện có trong Database ra ngoài Trang chủ - Thực thi câu lệnh SELECT trong PHP #10803
- [Bài tập] - Tạo trang web hiển thị Chi tiết của một Truyện tranh/Tiểu thuyết - Thực thi câu lệnh SELECT trong PHP #10807
- [Bài tập] - Tạo trang web hiển thị Nội dung của một Chương/Tập cụ thể thuộc một Truyện tranh/Tiểu thuyết nào đó - Thực thi câu lệnh SELECT trong PHP #10812
- [Bài tập] - Tạo trang web Quản lý hiển thị Danh sách Truyện tranh - Index #10819
- [Bài tập] - Tạo trang web Quản lý hiển thị Danh sách Tiểu thuyết - Index #10822
- [Bài tập] - Tạo trang web Quản lý Thêm mới Truyện tranh - Create #10831
- [Bài tập] - Tạo trang web Quản lý Thêm mới Tiểu thuyết - Create #10836
- Đồ án cuối khóa 6
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
- Cơ sở dữ liệu
-
Thiết kế Cơ sở dữ liệu
12
- Mô hình dữ liệu Quan niệm CDM (Conceptual Data Model) #10551
- Mô hình dữ liệu Vật lý PDM (Physical Data Model) #10560
- [Bài tập 1.1] - Thực hành thiết kế sơ đồ CDM trang web Thương mại điện tử #10552
- [Bài tập 1.2] - Thực hành thiết kế sơ đồ PDM (ER) trang web Thương mại điện tử #10571
- [Bài tập 1.3] - Thực hành thiết kế sơ đồ CDM hệ thống Quản trị Thiết bị / Phòng học #10554
- [Bài tập 1.4] - Thực hành thiết kế sơ đồ PDM (ER) hệ thống Quản trị Thiết bị / Phòng học #10572
- [Bài tập 1.5] - Thực hành thiết kế sơ đồ CDM hệ thống Kênh phát nhạc #10556
- [Bài tập 1.6] - Thực hành thiết kế sơ đồ PDM (ER) hệ thống Kênh phát nhạc #10573
- [Bài tập 1.7] - Thực hành thiết kế sơ đồ CDM trang web Quản lý Truyện tranh / Tiểu thuyết #10569
- [Bài tập 1.8] - Thực hành thiết kế sơ đồ PDM (ER) trang web Quản lý Truyện tranh / Tiểu thuyết #10574
- [Bài tập 1.9] - Thực hành thiết kế sơ đồ CDM hệ thống Quản trị Nhân sự #10575
- [Bài tập 1.10] - Thực hành thiết kế sơ đồ PDM (ER) hệ thống Quản trị Nhân sự #10558
- Hệ quản trị Cơ sở dữ liệu MySQL - Tổng quan, khái niệm về database 2
- Hệ quản trị Cơ sở dữ liệu MySQL - Các lệnh tạo cấu trúc (schema database) 2
-
Hệ quản trị Cơ sở dữ liệu MySQL - Tạo cấu trúc database với HeidiSQL
9
- Tạo cơ sở dữ liệu (database) NetaShop - Sử dụng HeidiSQL #8587
- Tạo bảng (table) Danh mục phẳng - Sử dụng HeidiSQL #8582
- Tạo bảng (table) Danh mục có liên kết khóa ngoại (có quan hệ) - Sử dụng HeidiSQL #8597
- Tạo bảng (table) theo quan hệ Nhiều - Nhiều (N-N) - Sử dụng HeidiSQL #8619
- Tạo bảng (table) có Quan hệ Tự thân (self foreign key) - Sử dụng HeidiSQL #8664
- [Bài tập 2.1] - Thực hành tạo cấu trúc database với PDM (ER) trang web Thương mại điện tử #10598
- [Bài tập 2.2] - Thực hành tạo cấu trúc database với PDM (ER) trang web Quản lý Truyện tranh / Tiểu thuyết #10603
- Cách export (dump) cơ sở dữ liệu MySQL bằng HeidiSQL #8343
- [Bài tập 2.3] - Thực hành tạo cấu trúc database với PDM (ER) trang web Quản lý Bóng đá #11614
-
Hệ quản trị Cơ sở dữ liệu MySQL - Các lệnh cập nhật dữ liệu (Insert - Update - Delete)
5
- Câu lệnh Thêm dữ liệu (INSERT) #2663
- Câu lệnh Cập nhật dữ liệu (UPDATE) #2665
- Câu lệnh Xóa dữ liệu (DELETE) #2664
- [Bài tập 2.3] - Thực hành thao tác các câu lệnh cập nhật dữ liệu trang web Thương mại điện tử #10605
- [Bài tập 2.4] - Thực hành thao tác các câu lệnh cập nhật dữ liệu trang web Quản lý Truyện tranh / Tiểu thuyết #10625
- Hệ quản trị Cơ sở dữ liệu MySQL - Các lệnh truy vấn dữ liệu (Select query data) 3
-
Ngôn ngữ lập trình PHP - Cú pháp căn bản
13
- Sơ đồ vận hành của một Website #1311
- 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] - Tạo các trang web PHP cho phép Khách truy cập tương ứng từ địa chỉ web URL #10651
- [Bài tập] - Khai báo các biến dữ liệu Đơn giản trong PHP và Render dữ liệu Đơn giản ra giao diện (HTML, CSS, JS) sử dụng PHP #10669
- [Bài tập] - Khai báo các biến dữ liệu Mảng Array và Render dữ liệu Danh sách Array ra giao diện (HTML, CSS, JS) sử dụng PHP #10670
- [Bài tập] - Xét kết quả tốt nghiệp của Sinh viên dựa theo thang điểm 10 sử dụng PHP #10695
- [Bài tập] - Làm quen với vòng lặp FOR / FOREACH / WHILE / DO WHILE trong PHP #10704
- Hàm (function) trong PHP #10713
- Các hàm (functions) xử lý Ngày tháng (datetime) trong PHP #10727
- Các hàm (functions) kiểm tra Biến (Variable) và các hàm kiểm tra Kiểu dữ liệu (data types) của biến trong PHP #10728
- [Bài tập] - Làm quen với hàm (function) trong PHP #10721
- [Bài tập] - Làm quen và sử dụng các hàm (functions) thông dụng có sẵn trong PHP #10753
-
Ngôn ngữ lập trình PHP - Xử lý Request và Response
6
- Thu thập và Xử lý dữ liệu bằng Yêu cầu GET (Request GET) trong PHP #8704
- Thu thập và Xử lý dữ liệu bằng Yêu cầu POST (Request POST) trong PHP #8705
- [Bài tập] - Tạo Form Đăng nhập và truyền dữ liệu bằng Request POST trong PHP #10771
- [Bài tập] - Tạo Form Liên hệ và truyền dữ liệu bằng Request POST trong PHP #10772
- [Bài tập] - Tạo trang Danh sách Sinh viên và truyền dữ liệu chức năng Sửa/Xóa bằng Request GET trong PHP #10773
- Bài tập tạo Form Tìm kiếm Thu thập và Xử lý dữ liệu bằng Yêu cầu GET (Request GET) trong PHP #8717
- Ngôn ngữ lập trình PHP - Thiết kế bố cục (layouts) cho trang web 3
-
Ngôn ngữ lập trình PHP - Thao tác với Cơ sở dữ liệu MySQL
16
- 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 SELECT trong PHP #8124
- Thực thi câu lệnh INSERT trong PHP #8118
- Thực thi câu lệnh INSERT với FORM trong PHP #8126
- Thực thi câu lệnh UPDATE trong PHP #8120
- Thực thi câu lệnh UPDATE với FORM trong PHP #8133
- Thực thi câu lệnh DELETE trong PHP #8122
- Thực thi câu lệnh DELETE với FORM trong PHP #8130
- [Bài tập] - Tạo trang web hiển thị Danh sách các Truyện tranh/Tiểu thuyết hiện có trong Database ra ngoài Trang chủ - Thực thi câu lệnh SELECT trong PHP #10803
- [Bài tập] - Tạo trang web hiển thị Chi tiết của một Truyện tranh/Tiểu thuyết - Thực thi câu lệnh SELECT trong PHP #10807
- [Bài tập] - Tạo trang web hiển thị Nội dung của một Chương/Tập cụ thể thuộc một Truyện tranh/Tiểu thuyết nào đó - Thực thi câu lệnh SELECT trong PHP #10812
- [Bài tập] - Tạo trang web Quản lý hiển thị Danh sách Truyện tranh - Index #10819
- [Bài tập] - Tạo trang web Quản lý hiển thị Danh sách Tiểu thuyết - Index #10822
- [Bài tập] - Tạo trang web Quản lý Thêm mới Truyện tranh - Create #10831
- [Bài tập] - Tạo trang web Quản lý Thêm mới Tiểu thuyết - Create #10836
- Đồ án cuối khóa 6
Bài học trước Bài học tiếp theo