Hướng dẫn dùng read forms 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 read forms 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:

Hướng dẫn dùng read forms trong PHP

Trong bài học này, chúng ta sẽ tìm hiểu xử lý form và gửi dữ liệu trong PHP bằng cách sử dụng các biến siêu toàn cục REQUEST, POST, GET.

  • Bài 10: Video xử lý form và gửi dữ liệu trong PHP
  • Hướng dẫn chi tiết
    • $GET
    • $POST
    • $REQUEST

Bài 10: Video xử lý form và gửi dữ liệu trong PHP

Hướng dẫn chi tiết

"Ra đời, cuộc sống bươm chải, có làm vẫn không có ăn" nên phải gắn QUẢNG CÁO

Các bạn cần hosting WordPress nhanh, rẻ và dễ sử dụng có free SLL hãy chọn Azdigi nhé.
Link đăng ký: NHẬN NGAY ƯU ĐÃI
Nếu các bạn mua hosting từ link trên, mình sẽ có một ít tiền để duy trì. Cảm ơn

$GET

Một mảng kết hợp của các biến được truyền cho tập lệnh hiện tại thông qua các tham số URL (còn gọi là chuỗi truy vấn). Lưu ý rằng mảng không chỉ được điền cho các yêu cầu GET, mà là cho tất cả các yêu cầu có chuỗi truy vấn.

GET không thể được sử dụng để gửi dữ liệu nhị phân, như hình ảnh hoặc tài liệu từ, đến máy chủ.

Gửi dữ liệu bằng tham số trên đường dẫn

Link demo

Nhận dữ liệu bằng cách truy cập vào biến $_GET trong file bai10-1.php trong cùng thư mục nhé.

Có làm thì mới có ăn như ai đó từng nói - Vài dòng ngắn cho QUẢNG CÁO nhé

Các bạn cần hosting WordPress nhanh, rẻ và dễ sử dụng có free SLL hãy chọn Azdigi nhé.
Link đăng ký: NHẬN NGAY ƯU ĐÃI
Nếu các bạn đăng ký và sử dụng hosting từ link trên, Góc Làm Web sẽ có một ít tiền để duy trì. 

if(isset($_GET['id'])){
   $bien = $_GET['id']; 
   echo $bien;
}

$POST

Phương thức POST là hình thức client gửi dữ liệu lên server kèm theo dữ liệu và dữ liệu sẽ bị ẩn chứ không hiển thị trên URL như phương thức GET.

Gửi dữ liệu bằng form phương thức POST

Nhận dữ liệu từ form, trong file bai10-2.php, chúng ta nên dùng isset để kiểm tra dữ liệu tồn tại hay chưa để tránh lỗi xảy ra. Sau dó, nhận giá trị từ form bằng $_POST[‘name của input’];

if (isset($_POST['username'])) {
    $name = $_POST['username'];
    echo $name;
}

$REQUEST

Một mảng kết hợp theo mặc định chứa nội dung của $ _GET, $ _POST và $ _COOKIE. Trong ví dụ bên dưới, mình sẽ ví dụ 1 trường hợp dùng $_REQUEST thay cho $ _POST nhé.

Ví dụ trên mình về GET và POST dùng hàm isset, còn bên dưới là ví dụ từ w3school dùng empty để kiểm tra. Để biết isset và empty khác nhau như thế nào, các bạn có thể tham khảo.

Nếu có thắc mắc, hãy đặt câu hỏi bằng cách comment bên dưới, qua email, hoặc nhắn tin qua Fanpage Góc làm web.

Liên hệ

Hướng dẫn dùng read forms trong PHP