Hướng dẫn dùng die form trong PHP

HTML FOR / GET / POST

Như phần HTML FORM, FORM là nơi mà người dùng nhập thông tin và gửi thông tin lên Server. Các phần tử trong FORM như input, select ... có các tên, ta coi nó như là biến. Xet HTML FORM sau:

form/first.php

action="first.php" method="post">

Name:
name="name" />

Age:
name="age" />

name="submit" value="Gửi đi" />

Hướng dẫn dùng die form trong PHP

  • Form trên có các biến name, age, submit
  • Thuộc tính action thiết lập địa chỉ URL mà form gửi dữ liệu biến đến, nếu không có thuộc tính này thì form gửi đến địa chỉ URL load form
  • Thuộc tính method thiết lập kiểu gửi thông tin của form, nhận giá trị post hoặc get

Phương thức POST

Khi bạn sử dụng form với method="post" thì các biến gửi đến Server sẽ đặt trong phần Header, Body của HTTP Request do vậy bạn sẽ không nhìn thấy dữ liệu này ở trình duyệt khi gửi, các giá trị biến sẽ được PHP nhận được lưu tại biến định nghĩa trước $_POST. Ngoài ra với POST nó hỗ trợ thêm các chức mở rộng như multi-part, để có thể gửi được file lên Server.

Sửa lại ví dụ trên để kiểm tra:

form/first.php

';
    var_dump($_POST);
    echo '$_GET
'; var_dump($_GET); ?>

Name:

Age:

Bạn submit thử dữ liệu, thì nó có thể có kết quả:

$_POST
array (size=3)
  'name' => string 'xuanthulab' (length=10)
  'age' => string '25' (length=2)
  'submit' => string 'Gửi đi' (length=9)

$_GET
array (size=0)

Như vậy thấy các biến name,age,submit từ FORM HTML đã chuyển đến PHP trong mảng $_POST

Phương thức GET

Nếu HTML FORM sử dụng method="get" thì khi gửi các biến đi HTTP Request sẽ chứa nó ở chính phần path của HTTP Request. Do vậy mà bạn sẽ nhìn thấy dữ liệu ở địa chỉ trình duyệt khi bấm gửi thông tin.

Bạn hay thử thay đổi ví dụ trên thay method bằng get. Thì khi gửi URL có thể có dạng là:

http://localhost/learnphp/form/first.php?name=xuanthulab&age=25&submit=G%E1%BB%ADi+%C4%91i

Đừng bao giờ dùng phương thức GET khi gửi PASSWORD

Kiểm tra là POST hay GET

Khi sử dụng HTML FORM để gửi dữ liệu nếu không có yêu cầu đặc biệt bắt buộc thì hãy chọn phương thức là post vì nó bảo mật hơn.

Ở Server Side (tại PHP Script) làm thế nào để xác định HTTP Request gửi đến là POST hay GET: Đơn giản là tên của phương thức lưu tại biến $_SERVER['REQUEST_METHOD']

Ví dụ sau kiểm tra phương thức là POST hay không

if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    // POST ĐẾN
}

Như trên đã trình bày, dữ liệu FORM gửi đến lưu tại $_GET, $_POST tùy theo cách thiết kế sử dụng FORM và URL truy vấn (ngoài ra còn có $_FILE)

Ví dụ:

form/first.php

";
    echo "Tuổi: $age
"; } else echo "

Nhập dữ liệu và bấm vào Gửi đi

"; ?>

Name:

Age:

  • Trang chủ
  • Hướng dẫn học
  • Học PHP
  • PHP xử lý form

PHP xử lý form

  • Các giá trị thành phần của form được thu thập thông qua phương thức _GET và _POST.
  • Các giá trị thành phần của form được xử lý dựa theo thuộc tính name của từng thành phần tương ứng và thông qua thuộc tính method của form để xác định phương thức truyền dữ liệu.
  • Các thành phần thường dùng của form:

    • PHP input type="text"
    • PHP input type="password"
    • PHP input type="checkbox"
    • PHP input type="radio"
    • PHP select option
    • PHP textarea
    • PHP form tổng hợp

- Trong tất cả ví dụ bên dưới sẽ dùng phương thức _POST với action ở trang hiện tại:

(action không giá trị sẽ mặc định submit xử lý ở trang hiện tại, hoặc có thể thay thế bằng action="php_form_handing.php" cũng cho kết quả tương tự).

Nút submit sẽ dùng

Xem ví dụ.

PHP input type="password"

  • Cách xử lý tương tự như input type="text"

PHP viết:

Password:

Xem ví dụ.

PHP input type="checkbox"

  • Cách xử lý tương tự như input type="text"

PHP viết:

Đăng ký học:
HTML , CSS

Đối với mỗi giá trị checkbox ta sẽ kiểm tra sự tồn tại riêng.

Xem ví dụ.

PHP input type="radio"

  • Cách xử lý tương tự như input type="text", tuy nhiên cần chú ý cách đặt tên thuộc tính namevalue.

PHP viết:

Giới tính:
Nam , Nữ

Xem ví dụ.

PHP select option

  • Định nghĩa và cách dùng select option xem thêm phần tham khảo.
  • Cũng xử lý dựa theo thuộc tính name, giá trị được lấy chính là nội dung của option được chọn.

PHP viết:

Thành phố:

Xem ví dụ.

PHP textarea

  • Định nghĩa và cách dùng textarea xem thêm phần tham khảo.
  • Cũng xử lý dựa theo thuộc tính name, giá trị được lấy chính là nội dung textarea.

PHP viết:

Tin nhắn

Xem ví dụ.

PHP form tổng hợp

PHP viết:

Họ tên:

Password:

Đăng ký học: HTML , CSS

Giới tính: Nam , Nữ

Thành phố:

Tin nhắn:

Họ tên:

Password:

Đăng ký học:

Giới tính:

Thành phố:

Tin nhắn:

Họ tên:

Password:

Đăng ký học:

Giới tính:

Thành phố:

Tin nhắn:

Xem ví dụ.

Bên trên là cách xử lý dựa trên hàm isset() để kiểm tra các giá trị $_POST có tồn tại hay không, tuy nhiên trong thực tế chúng ta sẽ sử dụng hàm empty() để kiểm tra xem các giá trị $_POST có rỗng hay không, nếu rỗng thì xuất hiện thông báo lỗi, còn không thì cho qua, xem thêm tại: PHP form validation.

Download file ví dụ