Mục lục:
2. Lấy dữ liệu từ phương thức GET
3. Một ví dụ với phương thức GET
5. Lấy dữ liệu từ phương thức POST
6. Một ví dụ với phương thức POST
Phương thức GET là hình thức client gửi dữ liệu lên server bằng cách bổ sung các tham số đằng sau URL mà ta hay gọi là Query String. Ví dụ ta có URL là: titoe.net?mail=thehalfheart@gmail.com&domain=titoe.net
thì lúc này phía server sẽ nhận được hai giá trị là:
Chính vì việc hiển thị dữ liệu trên URL một cách lộ liễu như vậy nên đối với những dữ liệu có tính bảo mật thì ta không thể sử dụng phương thức GET được. Thông thường những hành động nào có làm thay đổi database như thao tác thêm, xóa, sửa thì ta không nên sử dụng phương thức GET, còn những hành động nào không làm thay đổi database như thao tác lấy danh sách, tìm kiếm thì ta có thể sử dụng.
Ví dụ: Sử dụng phương thức GET cho form tìm kiếm
Bạn tạo một file tên là get.php
với nội dung như sau:
|
Bạn cần chú ý một số điều như sau:
action="get.php"
và method="get"
name="q"
name="btn"
và value="Search"
Bạn chạy file này lên sau đó nhập dữ liệu tìm kiếm vào rồi nhấn button Search thì lúc này giao diện và URL sẽ như sau:
Như vậy phương thức GET trong form thực chất là sự chuyển hướng trang kèm theo việc bổ sung phần query string cho URL. Như ví dụ trên khi ta tạo form với phương thức GET thì dữ liệu sẽ đưa lên URL với key chính là tên của ô input và value chính là dữ liệu của ô input.
Để lấy dữ liệu từ phương thức GET thì ta phải sử dụng biến $_GET, đây là biến toàn cục lưu trữ các dữ liệu từ client gửi lên server thông qua phương thức GET.
Quay lại ví dụ ở trên thì bạn thay đổi mã code cho file get.php
như sau:
|
Bây giờ bạn hãy chạy lại file get.php
thì dễ dàng thấy biến $_GET
lúc này là một mảng rổng. Bây giờ bạn nhập dòng chữ "titoe" vào rồi nhấn Search thì kết quả như trong hình sau:
Search
array
'q'=>string 'titoe' (Length=)
'btn' => string 'Search' (Leng=6)
Ok như vậy q
chính là tên của ô input nhập dữ liệu, btn
chính là tên của button.
Bây giờ mình sẽ viết một ứng dụng nhập vào năm sinh của bạn và tính ra số tuổi hiện tại. Ta sẽ sử dụng lại file get.php
luôn nhé.
Trước khi giải bài này thì mình phải phân tích thuật toán đã nhé. Như đề vài ta nhập vào năm sinh thì muốn biết số tuổi ta chỉ cần lấy năm hiện tại trừ đi số năm sinh mà người dùng nhập vào là ra. Để lấy năm hiện tại thì ta dùng hàm xử lý ngày tháng trong PHP đó là hàm date()
.
Bạn thay đổi nội dung cho file get.php
như sau:
|
Bước 2: Code PHP tìm số tuổi
Bạn để ý trong form có sử dụng phương thức là GET và có button submit có tên là btn, vì vậy để kiểm tra người dùng click vào nút submit thì ta chỉ cần sử dụng đoạn code sau:
|
Ok như vậy đây là toàn bộ nội dung PHP của ứng dụng tìm tuổi này.
|
Và đây là toàn bộ nội dung của file get.php
.
|
Phương thức POST là hình thức client gửi dữ liệu lên server kèm theo dữ liệu và dữ liệu sẽ bị ẩn chứ không hiển thị trên URL như phương thức GET, vì vậy khi xây dựng form lấy thông tin từ user thì ta nên sử dụng phương thức POST vì nó bảo mật hơn.
Ví dụ mình xây dựng form đăng nhập thì mình sẽ sử dụng phương thức POST. Bạn tạo một file tên là post.php
và nhập vào đoạn code sau:
|
Bạn hãy thử nhấn đăng nhập và xem trên URL thì sẽ thấy nó không có bổ sung một query string nao vào cả. Như vậy với phương thức POST thì dữ liệu sẽ được giấu đi.
Để lấy dữ liệu từ phương thức POST thì ta sẽ sư dụng biến $_POST
, đây là một mảng chứa danh sách tất cả dữ liệu từ client gửi lên bằng phương thức POST.
Quay lại ví dụ trên bạn sửa code lại như sau:
|
Bạn hãy chạy lại chương trình và nhập vào username là 'titoe.net' và mật khẩu là 'thehalfheart' và xem kết quả.
Bây giờ ta xây dựng form đăng nhập hoàn chỉnh nhé.
Giả sử nếu người dùng nhập tên đăng nhập là titoe.net và mật khẩu là thehalfheart thì ta sẽ thông báo là đăng nhập thành công, ngược lại sẽ thông báo đăng nhập sai.
Bạn sửa lại file post.php
với nội dung như sau:
|
Về bài trước... |
Bài tiếp theo... |
+ Lê Văn Thuyên-0379136392:Cảm ơn quý vị và các bạn đã vào Website của Lê Thuyên! Lê thuyên rất mong nhận được sự góp ý của quý vị và các bạn cho sự phát triển của website này. Xin chân thành cảm ơn!
* Dũng Trung-090567448:Lê Văn Thuyên0379136392--->Ok.Anh!
* Bé Nguyễn-benguyen@gmail,com:Lê Văn Thuyên0379136392--->Good job!
+ -:
+ -: