Lưu đồ gởi dữ liệu thông qua yêu cầu POST (Request POST) bằng FORM từ Client đến Server

Yêu cầu POST (Request POST) được gởi từ FORM

Phía Client

Yêu cầu (request) được gởi từ Form nhập liệu của người dùng, với cấu hình của Form như sau:
  1. Trong Form cần khai báo các thuộc tính:
    1. Phương thức method=POST
    2. Chỉ định File xử lý trên Server action="duong_dan_den_file_xu_ly.php"
  2. Các thành phần Nhập liệu (inputs) trong Form cần phải được đặt tên, sử dụng thuộc tính name="ten_cu_the"
  3. Sau khi Form Submit, dữ liệu sẽ được gởi kèm trong Request Body

Phía Server

Nếu Request POST được gởi đến Server, thì việc phân tách dữ liệu sẽ do biến $_POST['param_name'] đảm nhận. Ví dụ:
<?php
// Phân tách dữ liệu từ khối dữ liệu được truyền đến từ CLIENT (Request POST)
// Biến lưu trữ thông tin Username
$ten_tai_khoan = $_POST['username'];

// Biến lưu trữ thông tin Password
$mat_khau = $_POST['password'];

// Biến lưu trữ thông tin Full name
$ho_ten = $_POST['full_name'];

// Xử lý các logic/Nghiệp vụ ...
// Lưu vào database ...
echo "Chào mừng bạn {$ho_ten} đã đăng ký thành công. Tên tài khoản để đăng nhập Hệ thống là: ${ten_tai_khoan}.";
?>

Các trường hợp thường dùng Request POST

Do dữ liệu được gởi bằng phương thức POST (method POST) sẽ không hiển thị trên thanh URL mà được đính kèm trong Request Body. Do đó, sẽ được sử dụng trong các trường hợp cần phải che dấu dữ liệu. Thường được sử dụng trong các trường hợp sau:
  • Khi thực hiện các chức năng Thêm, Sửa, Xóa (Create, Edit, Delete)
  • Cần một lượng lớn thông tin được gởi đến Server để xử lý
  • ...

Ví dụ tạo Form thu thập thông tin và Xử lý Đăng ký

Step 1: tạo file hiển thị Form cho người dùng (End User) Nhập liệu

  • Tạo file form-dang-ky.php
  • Code PHP
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Xử lý Request POST trong PHP | Nền Tảng .vn</title>
</head>
<body>
  <h1>Form đăng ký | NenTang.vn</h1>

  <!-- 
    1. Thuộc tính action="" dùng để chỉ định địa chỉ file PHP - nơi sẽ nhận dữ liệu từ CLIENT gởi đến và xử lý theo các LOGIC nào đó...
    2. Phương thức (method) dùng để gởi request có thể sử dụng: GET hoặc POST
      * Nếu sử dụng phương thức POST:
      - Dữ liệu trong FORM sẽ được truyền đóng gói và đính kèm trong Request Body khi gởi đến Server
        http://domain/action.php

      Ví dụ: http://localhost/hoc-php/xu-ly-form-dang-ky.php
  -->
  <form name="frmRegister" id="frmRegister" action="xu-ly-dang-ky.php" method="POST">
    <table border="1" width="600px" cellspacing="0px" cellpadding="10px">
      <tr>
        <td>Tài khoản:</td>
        <td>
          <!-- 
            Thuộc tính name="" cần có trong các thành phần Nhập liệu (input, select, ...)
            FORM sẽ đóng gói dữ liệu người dùng (End User) nhập liệu vào đúng tên được đặt trong thuộc tính name=""
            Ví dụ: đặt tên là name="username"
          -->
          <input type="text" name="username" id="username" />
        </td>
      </tr>
      <tr>
        <td>Mật khẩu:</td>
        <td>
          <!-- 
            Thuộc tính name="" cần có trong các thành phần Nhập liệu (input, select, ...)
            FORM sẽ đóng gói dữ liệu người dùng (End User) nhập liệu vào đúng tên được đặt trong thuộc tính name=""
            Ví dụ: đặt tên là name="password"
          -->
          <input type="text" name="password" id="password" />
        </td>
      </tr>
      <tr>
        <td>Họ tên:</td>
        <td>
          <!-- 
            Thuộc tính name="" cần có trong các thành phần Nhập liệu (input, select, ...)
            FORM sẽ đóng gói dữ liệu người dùng (End User) nhập liệu vào đúng tên được đặt trong thuộc tính name=""
            Ví dụ: đặt tên là name="full_name"
          -->
          <input type="text" name="full_name" id="full_name" />
        </td>
      </tr>
      <tr>
        <td colspan="2" align="center">
          <input type="submit" value="Đăng ký" />
        </td>
      </tr>
    </table>
  </form>
</body>
</html>

Step 2: Phân tách dữ liệu từ Request POST gởi đến và xử lý logic/nghiệp vụ Đăng ký trên Server

  • Tạo file xu-ly-dang-ký.php
  • Code:
<?php
  // Phân tách dữ liệu từ khối dữ liệu được truyền đến từ CLIENT (Request POST)
  // Biến lưu trữ thông tin Username
  $ten_tai_khoan = $_POST['username'];
  
  // Biến lưu trữ thông tin Password
  $mat_khau = $_POST['password'];

  // Biến lưu trữ thông tin Full name
  $ho_ten = $_POST['full_name'];

  // Xử lý các logic/Nghiệp vụ ...
  // Lưu vào database ...
  echo "Chào mừng bạn {$ho_ten} đã đăng ký thành công. Tên tài khoản để đăng nhập Hệ thống là: ${ten_tai_khoan}.";
?>