18 Mar

Phương thức Post và Get trong PHP 5.00/5 (100.00%) 1 vote

Chắc trong các bạn cùng hay truy cập các trang website trên internet để tìm kiếm tài liệu hay mua hàng online, chúng ta sẽ bắt gặp những form đăng kí đăng nhập đúng không, bạn sẽ phải gõ các thông tin cần thiết vào rồi bấm nút gửi, và tại sao lúc thì chúng ta bấm đúng thì báo thành công , bấm sai thì bị báo lỗi ai sẽ kiểm tra các thông tin này?

Dữ liệu của người dùng từ trình duyệt sẽ gửi lên máy chủ ( máy chủ nơi mà lưu trữ dữ liệu và xử lý thông tin ) dưới dạng từng cặp biến=giá trị và có thể đi theo 2 kiểu khác nhau là GET hoạc POST .  Ta đi tìm hiểu chúng nhé .

1. Phương thức GET

Dữ liệu gửi từ trình duyệt lên băng phương thức GET là phần dữ liệu được gán sau địa chỉ URL do trình duyệt gửi lên, được phân biệt với tên file script bằng dấu chấm hỏi (?)

Ví dụ: https://translate.google.com/?hl=vi

  • Phía client gửi liệu lên

    ★ Trên form

    Phương thức dữ liệu từ Form truyền đến trang PHP được quy định bởi METHOD của form
    Ví dụ

    ★ Trên link

    Ta sử dụng thể dùng thẻ <a></a>  thuộc tính href để gởi dữ lệu
    Ví dụ

    Trong đó: xuly.php là file xử lý khi client gửi dữ liệu theo thương thức GET, các biến khác được ghép bởi kí hiệu , txtten và txtmk là tên biến, còn abc123 và 123456 là giá trị gán vào biến.
    Lưu ý: txtten=abc123, thì abc123 không được đóng dấu nháy kép hay nháy đơn!

  • Phía server nhận dữ liệu

    Khi ta submit hay ta nhấn vào link thì chúng ta đã gửi lên trên thanh URL 2 cặp biến=giá trị theo phương thức GET đó là txtten=abc123txtmk=123456. Khi trình duyệt gửi thông tin này lên máy chủ thì PHP tự động sinh ra một mảng $GET[] để lưu trữ các cặp biến và giá trị đó.
    Ví dụ 1
    Bước 1. Bạn tạo một file xuly.php bỏ vào htdoc nếu dùng Xampp
    Bước 2. Bạn mở file xuly.php và gõ code sau:

    Bước 3. Bạn nhớ bật Xampp nha rồi chạy file xuly.php, sau đó bạn kích nút gửi và bạn sẽ thấy kết quả
    Gửi
    Tên đăng nhập:abc123
    Mật khẩu:123456
    Ví dụ 2: Bạn làm tương tự ví dụ một nhé nhưng ta không dùng link mà dùng form

    Kết quả:ptget

2. Phương thức POST

Phương thức POST là phương thức dùng để truyền dữ liệu của form thông qua, Input gồm các kiểu (textbox, radio, checkbox, password, textarea, hidden) và được nhận dang thông qua tên (name) của các input đó.

  • Phía client gửi liệu lên

     ★ Trên form

    Phương thức dữ liệu từ Form truyền đến trang PHP được quy định bởi METHOD của form

    Bạn hãy chaỵ lên ,bạn thấy  form hiện lên giống như form mình làm method get đúng không? bạn nhấn vào button đăng nhập thì trên thanh URL sẽ không có bất cứ thông tin nào trong form hiện lên cả,  nên ta nói phương thức POST bảo mật hơn.

  • Phía server nhận dữ liệu

    Tương tự như method GET, PHP tạo ra biến toàn cục $_POST để lưu trữ các dữ liệu từ form gửi lên

    Kết quảptpost

3. Lưu ý khi lấy dữ liệu

  • Trước khi lấy dữ liệu bạn nên kiểm tra dữ liệu có tồn tại không, nếu bạn không kiểm tra người dùng không nhập vào thì khi xử lý chương trình sẽ báo lỗi. Ta dùng hàm isset($tên biến). 

     

  • Khi bạn dùng phương thức nào gửi dữ liệu thì bạn nên dùng biến tương ứng dùng phương thức POST thì dung biến $_POST nếu dùng GET thì $_GET
    Nhiều khi ta không biến dữ liệu đang dùng phương thức nào thì ta có thể dùng $_REQUEST là biến toàn cục thay thế cho $_POST và $_GET
  • Lưu ý khi dùng form bạn nhớ đặt tên name cho các input  khi xử lý phía server, và phía  server phải gọi đúng tên name mới lấy được dữ liệu .

4. So sánh giữ POST – GET

❄ Giống nhau

  • Đều gửi lên phía server xử lý

❄ Khác nhau

  • Phương thức get

    – Gửi lên bằng form hoặc dưới dạng link của thẻ a
    – Các giá trị gửi lên server đều được hiện trên thanh trình duyệt URL không được bảo mật
    – Chỉ có thể truyền đi một lượng thông tin nhỏ
    – Phương thức get nhanh hơn phương thức post, vì các dữ liệu truyền đi được trình duyệt lưu trữ lại cache, ví dụ: bạn đăng nhập tài khoản lần một sẽ gửi lên server xử lý xong rồi gửi lại phía client, nhưng các lần đăng nhập sau nếu tài khoản đã tồn tại trong cache thì trình duyệt sẽ không gửi lên server nữa mà trả về ngay.

  • Phương thức post

    – Chỉ gửi dữ liệu bằng form
    – Giá trị truyền đi không hiển thị trên thanh URL nên rất bảo mật
    Không giới hạn lượng dữ liệu truyền đi

  • Khi nào dùng POST – GET 

    -Khi nào bạn muốn Seo, hay dữ liệu không cần bảo mật thì dùng GET sẽ nhanh hơn
    -Nếu bạn muốn bảo mật những dữ liệu nhưn mật khẩu, hay các thông tin cơ mật thì ta nên dùng post

5. Lời kết

Qua bài học phương thức POST- GET bạn có thể truyền dữ liệu ở phía client lên server , và hiểu rõ được ưu và nhược điểm lẫn nhau của 2 phương thức truyền này sẽ giúp bạn lựa chọn cách đưa dữ liệu một cách hợp lý hơn.

Chúc bạn học tốt và thành công!.