Cách Xử Lý Giá Trị Form Trong PHP
Biến superglobals trong PHP sẽ đều được xử lý dựa trên 2 phương thức, đó là phương thức GET và phương thức POST qua dữ liệu thu thập được. PHP – Một dạng HTML đơn giản Ví dụ dưới đây cho thấy một dạng HTML đơn giản với 2 dữ liệu đầu vào và người dùng ...
Biến superglobals trong PHP sẽ đều được xử lý dựa trên 2 phương thức, đó là phương thức GET và phương thức POST qua dữ liệu thu thập được.
PHP – Một dạng HTML đơn giản
Ví dụ dưới đây cho thấy một dạng HTML đơn giản với 2 dữ liệu đầu vào và người dùng chỉ việc nhấn nút submit:
<html>
<body>
<form action="welcome.php" method="post">
Name: <input type="text" name="name"><br>
E-mail: <input type="text" name="email"><br>
<input type="submit">
</form>
</body>
</html>
Sau khi khai đầy đủ thông tin vào form có sẵn và nhấn nút “submit:, dữ liệu sẽ được gửi đến trong file PHP có tên là “welcome.php”. Dạng dữ liệu này được gửi đến HTTP bằng phương pháp POST.
Để hiển thị dữ liệu đề xuất, bạn có thể đặt tên nó thành các biến khác nhau. Làm tương tự như file “welcome.php”.
<html>
<body>
Welcome <?php echo $_POST["name"]; ?><br>
Your email address is: <?php echo $_POST["email"]; ?>
</body>
</html>
Dữ liệu đầu ra có thể sẽ tương tự như dưới đây:
Welcome John
Your email address is [email protected]
Tương tự kết quả biểu thị cho ra giống như hàm GET trong HTML:
<html>
<body>
<form action="welcome_get.php" method="get">
Name: <input type="text" name="name"><br>
E-mail: <input type="text" name="email"><br>
<input type="submit">
</form>
</body>
</html>
Lúc này, “ welcome_get.php” sẽ được hiển thị như sau:
<html>
<body>
Welcome <?php echo $_GET["name"]; ?><br>
Your email address is: <?php echo $_GET["email"]; ?>
</body>
</html>
Chúng ta có thể thấy, đoạn mã code phía trên tương đối đơn giản. Tuy nhiên, người dùng nên cẩn thận trong từng chi tiết để tránh sai sót. Người dùng cần có một dữ liệu tin cậy để bảo vệ các lệnh khỏi những mã code nguy hiểm.
Hàm GET Và Hàm POST
Cả hàm GET và hàm POST đều cho dữ liệu đầu ra là một mảng. Ví dụ mảng ( key 1=>value 1, key 2=> value 2, key 3=>value 3,…). Mảng này chứa cặp giá trị key/value. Key là tên của mẫu điều khiển và value là dữ liệu đầu vào của người sử dụng.
Cả hàm Get và hàm Post đều được cấu tạo dạng $_GET và $_POST. Biến superglobals có thể liên kết trong bất kì phạm vi nào và bất kì hàm, lớp hoặc file nào một cách dễ dàng.
$_GET là một mảng gồm các biến mà khách hàng gửi dữ liệu lên server bằng cách bổ sung các tham số đằng sau URL.
$_POST là một mảng gồm các biến mà khách hàng gửi dữ liệu lên server bằng cách bổ sung các tham số HTTP.
Khi nào thì sử dụng hàm GET?
Thông tin được gửi đến bằng hàm GET luôn hiển thị với mọi người ( nghĩa là tất cả tên và giá trị của các biến đều hiển thị trong URL). Phương thức GET rất dễ nhận thấy đó là trên URL sẽ kèm theo dữ liệu mà chúng ta muốn gửi. GET cũng giới hạn lượng thông tin được truyền tải trong khoảng 2000 kí tự. Các biến thể hiện trong URL có thể được bôi màu trên trang, do đó nó khá hữu ích.
GET có thể được dùng để gửi các thông tin nhạy cảm.
Lưu ý: Không bao giờ sử dụng phương thức GET nếu gửi password hoặc thông tin nhạy cảm lên Server.
Khi nào sử dụng hàm POST?
Phương thức POST có tính bảo mật hơn vì dữ liệu gửi phải thông qua một form HTML nên nó bị ẩn, nghĩa là chúng ta không thể thấy các giá trị đó được. Phương thức POST không có bất kì hạn chế nào về kích thước dữ liệu sẽ gửi.
PHP cung cấp mảng liên hợp $_POST để truy cập tất cả các thông tin được gửi bằng phương thức POST.
Hơn nữa, POST hỗ trợ các hàm khác như nhập các dữ liệu nhị phân trong khi upload file lên server.
Tuy nhiên, do các biến không hiển thị trong URL, do đó nó không thể hiển thị dấu hiệu trên trang công cụ.