Khi các bạn truy cập sử dụng website thì chính bạn là Client. Khi các bạn đăng nhập hay đăng ký tài khoản, hoặc là các bạn đăng bình luận thì dữ liệu sẽ được gửi từ client lên Server, vậy làm sao để Server nhận được những thông tin của bạn?
Nội dung bài học của chúng ta như sau
- Phương thức GET trong PHP
- Phương thức POST trong PHP
- So sánh giữa POST và GET
1. Phương thức GET trong PHP
Phương thức GET rất dễ nhận thấy đó là trên URL sẽ kèm theo dữ liệu mà chúng ta muốn gửi
Khách hàng gửi lên
Phương thức GET là phương thức gửi dữ liệu thông qua đường dẫn URL nằm trên thanh địa chỉ của Trình duyệt. Máy chủ sẽ nhận đường dẫn đó và phân tích trả về kết quả cho bạn. Máy chủ sẽ phân tích tất cả những thông tin phía sau dấu hỏi [?] chính là phần dữ liệu mà Máy khách gửi lên
Ví dụ. With URL
echo 'Dữ Liệu Chúng Tôi Nhận Được Là
';
foreach [$_GET as $key => $val]
{
echo '' . $key . ' => ' . $val . '
';
}
2thì Máy chủ sẽ nhận được giá trị
echo 'Dữ Liệu Chúng Tôi Nhận Được Là
';
foreach [$_GET as $key => $val]
{
echo '' . $key . ' => ' . $val . '
';
}
3To transfer many data up Server ta used a sign & to split between the cặp giá trị. Giả sử tôi muốn truyền
echo 'Dữ Liệu Chúng Tôi Nhận Được Là
';
foreach [$_GET as $key => $val]
{
echo '' . $key . ' => ' . $val . '
';
}
3và
echo 'Dữ Liệu Chúng Tôi Nhận Được Là
';
foreach [$_GET as $key => $val]
{
echo '' . $key . ' => ' . $val . '
';
}
5 thì URL sẽ có dạng
echo 'Dữ Liệu Chúng Tôi Nhận Được Là
';
foreach [$_GET as $key => $val]
{
echo '' . $key . ' => ' . $val . '
';
}
6. Lưu ý với các bạn là vị trí của các cặp giá trị không quan trọng, có nghĩa là cặp danh hiệu có thể nằm trước cặp id cũng đượcMáy chủ nhận dữ liệu
Tất 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, biến này là kiểu mảng kết hợp lưu trữ danh sách dữ liệu từ client gửi lên theo . Ví dụ với URL
echo 'Dữ Liệu Chúng Tôi Nhận Được Là
';
foreach [$_GET as $key => $val]
{
echo '' . $key . ' => ' . $val . '
';
}
6 thì dữ liệu sẽ được lưu trong biến $_GET dưới dạng9echo 'Dữ Liệu Chúng Tôi Nhận Được Là
'; foreach [$_GET as $key => $val] { echo '' . $key . ' => ' . $val . '
'; }
Vì thế để lấy dữ liệu, ta chỉ cần làm như sau
________số 8_______Thực hành
Bạn hãy tạo một file get. php nằm trong thư mục WWW của Vertrigo Server hoặc thư mục htdocs của Xampp, sau đó bạn copy đoạn mã này vào
echo 'Dữ Liệu Chúng Tôi Nhận Được Là
';
foreach [$_GET as $key => $val]
{
echo '' . $key . ' => ' . $val . '
';
}
Sau đó bạn duyệt duyệt đường dẫn sau. máy chủ cục bộ/nhận. php?id=12&title=method_get and view to results nhé. Bạn hãy thử thay đổi hoặc thêm các giá trị xem có gì khác không
Lưu ý quan trọng. Trước khi lấy bất kỳ dữ liệu nào, bạn phải kiểm tra sự tồn tại không lấy mới nhé, vì nếu bạn không kiểm tra thì giả sử người dùng không truyền dữ liệu qua đó bạn nhận lại thì sẽ bị báo lỗi ngay. To check ta use function isset[$tenbien] in php
Ví dụ
if [isset[$_GET['id']]]{
$id = $_GET['id'];
}
2. Phương thức POST trong PHP
Phương thức POST có tính bảo mật cao hơn vì dữ liệu gửi phải thông qua một biểu mẫu HTML nên nó bị ẩn, nghĩa là chúng ta không thể thấy các giá trị đó được
Client Gửi Lên
Với phương thức GET thì dữ liệu được tìm thấy trên URL, còn phương thức POST thì hoàn toàn ngược lại, POST sẽ gửi dữ liệu qua một dạng HTML và các giá trị sẽ được định nghĩa trong các đầu vào bao gồm các kiểu [hộp văn bản, radio,
Máy chủ nhận dữ liệu Tất cả dữ liệu gửi theo phương thức POST đều được lưu trong biến toàn cục $_POST do PHP tự tạo ra, vì thế để lấy dữ liệu thì bạn chỉ cần lấy trong biến này là được. Cũng như lưu ý với các bạn trước khi lấy phải sử dụng hàm isset[$bien] để kiểm tra có hay không nhé
if [isset[$_POST['id']]]{
$id = $_POST['id'];
}
Thực hành
Bước 1. Bạn đã tạo một bài đăng tệp. php nằm trong thư mục WWW của Vertrigo Server hoặc thư mục htdocs của Xampp, sau đó nhập đoạn mã tạo biểu mẫu này vào
Username:
password:
Bước 2. Bạn mở trình duyệt để nhập đường dẫn localhost/post. php and view nghía cái form mình vừa tạo ra nhé
Bước 3. Bạn đã sửa lại đoạn mã HTML đó bằng cách thêm vào đoạn mã PHP như sau
Username:
password:
Bước 4. Bạn làm mới lại trình duyệt rồi nhập tên đăng nhập và mật khẩu vào, sau đó nhấn vào nút "Gửi liệu" và xem thành quả của mình nhé
3. So sánh giữa POST và GET
Để các bạn hiểu rõ hơn về hai phương thức POST và GET thì chúng ta cùng so sánh một chút nhé
giống nhau
- Góc gửi dữ liệu lên Server
Khác nhau
- Phương thức POST bảo mật hơn GET vì dữ liệu được gửi bằng mắt thường không thể nhìn thấy được
- Phương thức GET dữ liệu được gửi đến tường minh, chúng ta có thể thấy trên URL nếu nó không bảo mật
- Phương thức GET luôn luôn nhanh hơn POST vì dữ liệu gửi đi được Browser giữ lại trong bộ đệm. Khi thực thi với POST thì Server luôn thực thi lệnh rồi trả về cho Client, còn với GET thì Browser sẽ kiểm tra trong cache chưa, nếu có thì trả về ngay chứ không cần gửi lên Server
When used GET - POST
- Khi dữ liệu bạn muốn SEO thì phải sử dụng phương thức GET
- Khi dữ liệu bạn không cần bảo mật thì sử dụng phương thức GET, đảo ngược dữ liệu bảo mật thì sử dụng phương thức POST
Ví dụ khi đăng nhập, Nhận xét, đăng ký sử dụng phương thức POST. Còn khi lấy tin ra thì sử dụng phương thức GET…
Khi request dùng câu lệnh select thì dùng GET, khi request dùng câu lệnh insert update, delete thì dùng POST