0

Xử Lý Form trong PHP

Biến $_GET$_POST được sử dụng để thu thập dữ liệu từ form.

Form PHP - HTML Cơ Bản

Ví dụ
Trình bày một form HTML cơ bản với 2 ô input và một nút submit:

<html>
<body>

<form action="xinchao.php" method="post">
Ten: <input type="text" name="ten"><br>
E-mail: <input type="text" name="email"><br>
<input type="submit">
</form>

</body>
</html>

Chạy Code

Khi người dùng điền vào form trên và ấn vào nút submit, dữ liệu được gửi đi và được xử lý thành file PHP bằng phương thức HTTP POST, file có tên là "xinchao.php".

Để hiện thị dữ liệu đã gửi bạn có thể echo các biến.
File "xinchao.php" như sau:

<html>
<body>

Xin chao <?php echo $_POST["ten"]; ?><br>
Dia chi email cua ban la: <?php echo $_POST["email"]; ?>

</body>
</html>

Chạy Code

Dữ liệu có thể được hiển thị như sau:

Xin chao Codehub
Dia chi email cua ban la: codehub.vn@gmail.com

Có thể có cùng kết quả khi sử dụng phương thức HTTP GET:
Ví dụ:

<html>
<body>

<form action="xinchao_get.php" method="get">
Ten: <input type="text" name="ten"><br>
E-mail: <input type="text" name="email"><br>
<input type="submit">
</form>

</body>
</html>

Chạy Code

và file "xinchao_get.php" như sau:

<html>
<body>

Xin chao <?php echo $_GET["name"]; ?><br>
Dia chi email cua ban la: <?php echo $_GET["email"]; ?>

</body>
</html>

Chạy Code

Đoạn code ở trên khá đơn giản. Tuy nhiên, để tao thành một form hoàn chỉnh và có bảo mật thì vẫn chưa đủ. Bạn cần form validation để bảo vệ câu lệnh khỏi các mã độc.

Chú ý: Bài học này không có form validation mà chỉ hướng dẫn cách gửi và truy xuất dữ liệu. Tuy nhiên, ở những bài học tiếp theo sẽ hướng dẫn form validation để bảo vệ form khỏi hackers và spammers!

GETPOST

Cả GETPOST đều tạo ra mảng. (Ví dụ mảng(key1 => giaTri1, key2 => giaTri2, key3 => giaTri3, ...)). Các key/giaTri tồn tại theo cặp. Trong đó key là tên của trường trong form, còn giaTri là dữ liệu do người dùng điền vào thẻ input.

GETPOST cũng được xem như là $_GET$_POST. Chúng là những superglobals, nghĩa là chúng luôn được truy cập trong bất kể phạm vi nào, và bạn có thể truy cập chúng từ bất kỳ hàm, lớp hay một file nào đó mà không cần làm thêm thao tác phụ nào khác.

$_GET là một mảng các biến được gửi đến tập lệnh hiên tại thông qua URL.

$_POST là một mảng các biến được gửi đến tập lệnh hiên tại thông qua phương thức HTTP POST.

Khi Nào Sử Dụng GET?

Tất cả mọi người có thể thấy dữ liệu được gửi từ form khi dùng phương thức GET(tất cả tên các biến, giá trị được hiển thị trên URL). GET cũng giới hạn dữ liệu gửi đi, khoảng 2000 kí tự. Tuy nhiên, vì các biến hiển thị trên URL nên bạn có thể đánh dấu trang. Việc này rất hữu dụng trong một số trường hợp.

GET có thể được sử dụng cho việc gửi những dữ liệu không nhạy cảm.

Chú ý: KHÔNG nên sử dụng GET vào việc gửi mật khẩu hay các thông tin nhạy cảm khác!

Khi Nào Dùng POST?

Dữ liệu được gửi từ form với phương thức POST thì không hiển thị với người dùng khác (tất cả tên hay giá trị được nhúng trong phần body của HTTP) và cũng không giới hạn lượng dữ liệu gửi tới.

Hơn nữa POST hỗ trợ chức năng nâng cao như hỗ trợ như upload nhiều file lên server.

Tuy nhiên, bởi vì các biến không được hiển thị trên URL nên không thể đánh dấu trang.

Chú ý: Các Dev thích sử dụng POST để gửi dữ liệu từ form hơn.

Bài học tiếp theo, hãy cùng xem làm thế nào để xử lý form PHP một cách an toàn!

Thêm Bình Luận