Hướng dẫn dùng get backed trong PHP

Để tìm hiểu về GETPOST trong PHP chúng ta sẽ thử xây dựng một form đăng ký (Form Submit) để xử lý dữ liệu người dùng nhập vào.

Hướng dẫn dùng get backed trong PHP

Tìm hiểu về GET và POST trong PHP qua ví dụ Form Submit

Bài này sẽ giúp bạn hiểu:

  • Khi nào và tại sao chúng ta đang sử dụng GETPOST
  • Cách tạo Form Submit với HTML
  • Phương thức POST
  • Phương thức GET
  • Sự khác nhau của Phương thức GET và Phương thức POST 
  • Quy trình xử lý dữ liệu ở Form Submit
  • Và các ví dụ khác

1. Form là gì?

Ví dụ, khi bạn đăng nhập vào một facebook hoặc vào email, đấy là bạn đang tương tác với Form

Form được sử dụng để lấy dữ liệu từ phía người dùng và submit lên server để yêu cầu xử lý.

Sơ đồ dưới đây, cho bạn thấy qui trình xử lý đơn giản.

Hướng dẫn dùng get backed trong PHP

Quy trình xử lý Dữ liệu trong Form Submit


Khi nào và tại sao chúng ta lại sử dụng Form

Khi chúng ta cần lấy thông tin từ người dùng để xử lý dữ liệu.
Form có thể sử dụng lấy thông tin giúp chỉnh sửa, cập nhật dữ liệu trong Database

2. Tạo một Form để chuẩn bị xử lý dữ liệu

Chúng ta sẽ sử dụng các thẻ HTML để tạo ra một Form. Dưới đây mà một thành phần tối thiểu các bạn cần phải có để tạo một Form.

  • Form phải có thẻ mở và thẻ đóng
  • Phương thức submit dữ liệu POST hoặc GET
  • URL xử lý dữ liệu sẽ submit
  • Các trường nhận dữ liệu đầu vào như: Button, Check box, text areas, ...
  •  
  •  

Đoạn code dưới đây sẽ tạo một Form đăng ký:

Kết quả mà form chúng ta đã tạo sẽ hiển thị trên trình duyệt như sau:

Hướng dẫn dùng get backed trong PHP

Hướng dẫn dùng get backed trong PHP

Form Submit

Giải thích về Code:

  • ...
    là thông báo cho trình duyệt biết đây là một form của tôi. 
  • là chỉ định dữ liệu sẽ được gửi với phương thứ POST đến xử lý tại registration_form.php 
  • đây là box để người dùng nhập dữ liệu

  • đây là thông báo xuống dòng
  • Đây là một cách kiểm tra xem dữ liệu đã được submit hay chưa.
  • Đây là một nút để người dùng kết thúc nhập liệu, chuyển sang gửi dữ liệu

3. Xử lý dữ liệu người dùng nhập vào Form

Thuộc tính action của các hình thức ghi rõ địa chỉ dữ liệu được submit gửi vào. Các method sẽ xác định kiểu gửi dữ liệu.

3.1. Gửi dữ liệu bằng phương thức POST trong PHP


  • Đây là biến mảng supper global được PHP cung cấp sẵn. Sử dụng để lấy dữ liệu submit thông qua phương thức HTTP POST
  • Biến mảng này có thể được truy cập từ bất kỳ chỗ nào. Đây là phạm vi global.
  • Sử dụng phương thức POST khi bạn không muốn hiển thị các thông tin cho người dùng biết.
  • Phương thức POST thường được sử dụng khi có các thông tin nhạy cảm như mật khẩu, số thẻ ngân hàng...

Chúng ta xem cú pháp sau:

Giải thích:

  • $_POST[...] là một mảng PHP
  • variable_name là địa chỉ của trường cần lấy dữ liệu

3.2. Lấy dữ liệu bằng Phương thức GET


  • Đây cũng là một biến mảng Super Global. Lấy dữ liệu bằng phương thức HTTP GET.
  • GET có thể được truy cập từ bất kỳ đâu, nó có phạm vi toàn cầu. 
  • Phương thức GET sẽ hiển thị các giá trị trong các địa chỉ URL
  • Phương thức GET thường sử dụng khi dữ liệu không nhạy cảm và cần cho người dùng biết rằng có sự thay đổi trong các hành động.

Cú pháp của Phương thức GET

4. Phương thức GET và POST khác nhau cụ thể như thế nào?

Phương thứ POST Phương thứ GET
Không hiển thị giá trị trên URL Có hiển thị giá trị trên URL
Không giới hạn độ dài của giá trị được submit Thông thường giới hạn độ dài là 255 ký tự. Tuy nhiên phụ thuộc vào hỗ trợ của trình duyệt
Mất nhiều thời gian để thực thi hơn là Phương thức GET Thực thi nhanh hơn phương thức POST
Hỗ trợ nhiều kiểu dữ liệu khác nhau: String, Numeric, Binary, ... Chỉ hỗ trợ dữ liệu kiểu String bởi vì nó hiển thị chúng trên URL
Không làm lộ dữ liệu Thây được dữ liệu trên thanh URL

Hình dưới đây mô tả cách phương thức GET và Phương thức POST làm việc:

9. HÌnh 1

Hướng dẫn dùng get backed trong PHP

Phương thức POST không làm lộ dữ liệu của Form Submit

9. Hình 2

Hướng dẫn dùng get backed trong PHP

Phương thức GET sẽ hiển thị nội dung Form submit đã gửi lên URL

5. Ví dụ về Xử lý dữ liệu Form đăng ký trong PHP

5.1. Xử lý dữ liệu bằng Phương thức POST

Form đăng ký gửi dữ liệu để tiếp tục xử lý

Một khi dữ liệu được submit. Chúng sẽ nằm trong biến mảng $_POST

Chúng ta sẽ sử dụng hàm isset để kiểm tra xem các giá trị đã có trong biến mảng $_POST chưa trước khi thực hiện các hành động tiếp theo.

Hãy xem đoạn mã dưới đây:

sử dụng để kiểm tra form_submitted đã có chưa và và hiển thị thông báo cảm ơn với firstname.
Nếu form_fobmitted lĩnh vực này chưa tồn tại trong $_POST[] mảng, form vẫn hiển thị.

5.2. Một ví dụ về chức năng Search sử dụng phương thức GET

Chúng ta sẽ thiết kế một công cụ tìm kiếm đơn giản mà sử dụng phương thức GET trong PHP.

Để đơn giản, chúng ta sẽ sử dụng cấu trúc if để xác định output

Chúng ta sẽ sử dụng cùng một đoạn mã HTMl gần giống như ví dụ From đăng ký ở trên và thay đổi nó đi một chút.

Hiển thị trong trình duyệt như sau:

Hướng dẫn dùng get backed trong PHP

Chức năng tìm kiếm đơn giản

Gõ thử "GET" và click vào nút submit

Chúng ta thấy chương trình thực thi như sau:

Hướng dẫn dùng get backed trong PHP

Chức năng mô phỏng tìm kiếm thực hiện thành công với Phương thức GET

Và bạn cũng sẽ thấy ở trong địa chỉ URL như sau:

Hướng dẫn dùng get backed trong PHP

Thông tin được GET hiển thị trên URL

3.3. Ví dụ làm việc với check box và radio button

Nếu người dùng tick vào checkbox hoặc radio, không có giá trị submit. Nếu người dùng tick vào check box hoặc radio button thì sẽ được submit.

Chúng ta hãy thay đổi việc mẫu Form đăng ký một chút và thêm một nút checkbox để kiểm tra xem người dùng có đồng ý với các điều khoản hay không rồi mới cho ấn submit.

Xem form hiển thị bên trong trình duyệt

Hướng dẫn dùng get backed trong PHP

Form Submit có điều kiện Kiểm tra trước khi Submit

Điền thông tin và không click vào nút Agree to Terms of Serivce -> Click vào submit button

Bạn sẽ nhận được kết quả như sau:

Hướng dẫn dùng get backed trong PHP

Xử lý và điều hướng khi người dùng chưa tick vào kiểm tra / đồng ý với điều khoản

Click vào nút Back và điền lại thông tin, click đồng ý Agree to Terms of Serivce -> Click submit

Hướng dẫn dùng get backed trong PHP

Thử nghiệm tick vào kiểm tra / đồng ý với điều khoản trước khi Submit

Lúc này chúng ta sẽ có được kết quả:

Hướng dẫn dùng get backed trong PHP

Kết quả xử lý khi người dùng đồng ý với điều khoản rồi mới Submit

Tổng kết

Như vậy là mình đã giúp các bạn tìm hiểu về phương thức GETPOST trong PHP thông qua ví dụ về các loại Form Submit, Công cụ Search.

Hi vọng qua bài này các bạn hiểu được:

  • Các hình thức được sử dụng để lấy dữ liệu từ các người sử dụng 
  • Tự tạo một form HTML
  • Form có thể gửi dữ liệu đến server bằng một trong 2 cách: GET và POST
  • Phương thức POST được sử dụng với các loại dữ liệu nhạy cảm và đa dạng
  • Phương thức GET được sử dụng với các dữ liệu có thể hiển thị trên URL

>>> Trong Khóa học Lập trình Web PHP thì bạn cũng sẽ được hướng dẫn xây dựng các Form đăng nhập, đăng ký, Admin ... bằng các phương thức này. Đăng ký ngay nếu muốn học Lập trình Web PHP nhé.