Tiếp tục series học PHP căn bản, ở bài 13 này chúng ta sẽ học về 2 phương thức truyền tải dữ liệu thông dụng trong mô hình Client-Server đó là Get và Post. Các bạn có thể xem lại khái niệm của Client-Server.
Phương thức GET trong PHP
Khi người dùng phía client sử dụng phương thức GET gửi dữ liệu lên server thông qua các tham số [parameter] trên thanh địa chỉ URL của Browser. Các tham số trên URL bắt đầu bằng dấu chấm hỏi [ ? ] và được ngăn cách với nhau bởi dấu và [ & ]. Server sẽ phân tích tất cả những thông tin đằng sau dấu hỏi [?] chính là phần dữ liệu mà Client gửi lên.
Ví dụ: ta có URL //tanhongit.net/?p=7740&preview=true
Khi truy cập, từ Server sẽ hiểu giá trị p = 7740 và giá trị preview = true.
Lưu ý 1: khi muốn truyền nhiều cặp giá trị lên Server chúng ta sẽ sử dụng dấu và [ &], và vị trí các cặp giá trị không quan trọng. Nghĩa là từ ví dụ trên, giá trị preview nằm trước giá trị p cũng được.
Đó là ví dụ về phần Client truy cập từ thanh địa chỉ URL. Chúng ta bây giờ sẽ chuyên sang các vấn đề trong code PHP.
Trong code khi các dữ liệu mà Client gửi lên bằng phương thức GET đều được lưu trong một biến toàn cục mà PHP tự tạo ra đó là biến $_GET. [ $_GET là một biến toàn cục lưu trữ dưới dạng mảng bất tuần tự.]
//biến $_GET là một mảng chứa nhiều phần tử
Lưu ý về phương thức GET trong PHP
- Phương thức GET được giới hạn gửi tối đa chỉ 1024 ký tự.
- Không bao giờ sử dụng phương thức GET nếu gửi password hoặc thông tin nhay cảm lên Server.
- GET không thể gửi dữ liệu nhị phân, ví dụ như hình ảnh hoặc các loại tài liệu lên Server.
- Dữ liệu gửi bởi phương thức GET có thể được truy cập bằng cách sử dụng biến môi trường QUERY_STRING.
- PHP cung cấp mảng liên hợp $_GET để truy cập tất cả các thông tin đã được gửi bởi phương thức GET.
Ví dụ thực hành
Ví dụ 1: Bạn khởi tạo 1 file demo.php nằm trong thư mục WWW của WampServer hoặc tạo trong thư mục htdocs nếu bạn dùng Xampp, sau đó bạn dán đoạn code bên dưới vào.
khi truy cập vào //localhost/demo.php?title=tanhongit&website=tanhongit.net
hoặc //localhost//demo.php
thì kết quả đều ra như sau:
title - TanHongIT website - tanhongit.net
Ở ví dụ trên mình sử dụng phương thức GET ngay trong 1 file duy nhất, mình đã sử dụng vòng lặp Foreach để lấy toàn bộ key và value có trong biến $_GET là một mảng có nhiều phần tử.
GET còn có thể sử dụng để truyền dữ liệu từ file này sang file khác. hãy làm tiếp ví dụ 2.
Ví dụ 2: Tạo 2 file, 1 file có tên get_demo.php và một file demo.html
Đầu tiên, ở trong file demo.html ta sẽ tạo 1 form để lấy dữ liệu nhập vào từ bàn phím và gửi lên server.
DocumentTitleWebsiteSubmit
Ở file demo.html mình có tạo 2 trường nhập liệu trong form có tên là titlevà webđể truyền dữ liệu nhập từ bàn phím vào file get_demo.php
Tiếp theo ta viết code để phía Server xuất ra màn hình sau khi nó đã nhận dữ liệu được nhập vào từ file demo.html thông qua file get_demo.php