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

Ngày đăng: 24/05/2019   -    Cập nhật: 27/05/2019

Để 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.

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

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.


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

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 <form></form>
  • 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:

Form Submit


Form Submit

Giải thích về Code:
  • <form>...</form> là thông báo cho trình duyệt biết đây là một form của tôi. 
  • <form action='registration_form.php' method='POST'> là chỉ định dữ liệu sẽ được gửi với phương thứ POST đến xử lý tại registration_form.php 
  • <input type="text"...> đây là box để người dùng nhập dữ liệu
  • <br> đây là thông báo xuống dòng
  • <input type="hidden" name="form_submitted" value="1"/> Đây là một cách kiểm tra xem dữ liệu đã được submit hay chưa.
  • <input type="submit" value="Submit"> Đâ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
Phương thức POST không làm lộ dữ liệu của Form Submit

Phương thức POST không làm lộ dữ liệu của Form Submit
9. Hình 2
Phương thức GET sẽ hiển thị nội dung Form submit đã gửi lên URL

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:



            
        

<?php if (isset($_POST['form_submitted'])): ?> 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:
Chức năng tìm kiếm đơn giản

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:
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

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:

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

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
Form Submit có điều kiện Kiểm tra trước khi Submit

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:

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

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
Thử nghiệm tick vào kiểm tra / đồng ý với điều khoản trước khi Submit

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ả:
Kết quả xử lý khi người dùng đồng ý với điều khoản rồi mới Submit

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é.
            
        
Bình luận Facebook
Đăng ký tư vấn
Nhân viên gọi điện tư vấn miễn phí sau khi đăng ký
Được cập nhật các ưu đãi sớm nhất
Hotline: 0383180086
Tên không được để trống
Số điện thoại không được để trống
Email không được để trống
Hãy đăng ký để nhận những thông tin mới nhất về học bổng mới nhất tại NIIT - ICT Hà Nội
top
Đóng lại Đăng ký học tại NIIT - ICT Hà Nội
6260+ học viên đã theo học tại NIIT - ICT Hà Nội và có việc làm tốt trong ngành lập trình. Nắm lấy cơ hội ngay hôm nay!
Chọn khóa học
  • KHÓA HỌC LẬP TRÌNH FRONT END VỚI REACT.JS
  • KHÓA HỌC LẬP TRÌNH PHP WEB
  • Khóa học PHP Full stack [2023] cho người mới bắt đầu
  • Khóa học BIG DATA với Hadoop và Spark
  • Khóa học Lập trình Android tại Hà Nội
  • [Tuyển sinh 2023] Lập trình viên Quốc tế DigiNxt
  • Khóa học Tiền lương & Phúc lợi (C&B Excel) tại Hà Nội
  • LẬP TRÌNH GAME
    • Khóa học Lập trình Game Unity
  • LẬP TRÌNH WEB FRONT END
    • KHÓA HỌC PYTHON HƯỚNG ĐỐI TƯỢNG
    • KHÓA HỌC ANGULAR & TYPESCRIPT (FRONT END)
  • LẬP TRÌNH WEB BACK END
    • LẬP TRÌNH JAVA WEB VỚI FRAME WORK
    • Lập trình Web với Django
    • Lập trình PHP với Laravel Framework
  • CHƯƠNG TRÌNH ĐÀO TẠO ỨNG DỤNG CÔNG NGHỆ
    • Khóa học Tiền lương & Phúc lợi (C&B Excel) tại TP HCM
  • LẬP TRÌNH WEB FULL STACK
    • Khóa học Java Full stack (IJFD)
  • LẬP TRÌNH MOBILE
    • FRONT-END VỚI REACTJS VÀ REACT NATIVE
    • Lập trình Android Nâng cao
  • ĐÀO TẠO CHO DOANH NGHIỆP
    • KHÓA HỌC BUSINESS ANALYSIC TỪ CƠ BẢN ĐẾN NÂNG CAO 2023
    • Khóa học Magento: Làm chủ CMS TMĐT lớn nhất
    • Khóa học IOT: Xây dựng Sản phẩm IOT với Raspberry Pi
    • Khóa học Automation Testing Chuyên nghiệp
  • KHÓA HỌC DỰ ÁN
    • Học sử dụng bộ Office: Word, Excel, Power Point, Mail chuyên nghiệp
  • KHÓA HỌC KHÁC
    • VBA Excel Toàn Tập (Cơ Bản - Nâng Cao)
    • VBA Excel Nâng cao
    • Khóa học JMeter: Performance Testing
    • Khóa học Tester đạt chuẩn Quốc tế ISTQB Foundation Level
    • Khoá Học Tester đạt chuẩn quốc tế ISTQB Advanced Level
Bạn chưa chọn khóa học cần đăng ký
Tên không được để trống
Số điện thoại không được để trống
Email không được để trống
Đăng ký học thành công!
Cảm ơn bạn đã đăng ký học tại NIIT - ICT HÀ NỘI!