Bất kỳ khi nào chúng ta cần gửi các dữ liệu từ một trang web tới một trang khác, chúng ta luôn phải sử dụng các biến để truyền thông tin qua lại. Tuy nhiên, việc sử dụng các biến đơn giản có thể gây ra những bất tiện trong việc quản lý và xử lý dữ liệu, đặc biệt là khi website của bạn có phải xử lý với rất nhiều biểu mẫu. Để giải quyết vấn đề này, chúng ta có thể sử dụng các biến siêu toàn cục trong PHP như là một giải pháp hiệu quả hơn.
Khái niệm biến siêu toàn cục
Biến siêu toàn cục trong PHP được hiểu là các biến mà có thể truy cập được từ bất kỳ đâu trong mã nguồn của trang web của bạn. Các biến siêu toàn cục được định nghĩa sẵn và có thể được sử dụng trong bất kỳ hàm nào mà không cần cung cấp thêm thông tin. Trong đó, hai biến siêu toàn cục phổ biến nhất là $_POST và $_GET.
$_POST
Biến $_POST được sử dụng để lấy dữ liệu từ một biểu mẫu HTML được submit bằng phương thức POST. Khi một biểu mẫu được submit, các giá trị của các ô input trong biểu mẫu sẽ được gửi đến trang xử lý thông qua biến $_POST. Việc lấy dữ liệu từ biến $_POST sẽ giúp chúng ta dễ dàng xử lý và sử dụng các dữ liệu này trong mã nguồn.
$_GET
Trái ngược với $_POST, biến $_GET được sử dụng để lấy dữ liệu từ một biểu mẫu HTML được submit bằng phương thức GET. Khi một biểu mẫu được submit bằng phương thức GET, các giá trị của các ô input trong biểu mẫu sẽ được gửi đến trang xử lý thông qua URL. Do đó, việc sử dụng biến $_GET sẽ cho phép chúng ta truy cập vào các dữ liệu được truyền theo URL và xử lý chúng trong mã nguồn.
Ưu điểm của việc sử dụng biến siêu toàn cục
Sử dụng biến siêu toàn cục trong mã nguồn của trang web có rất nhiều lợi ích, đặc biệt là trong việc quản lý và xử lý dữ liệu từ các biểu mẫu. Dưới đây là các ưu điểm chính của việc sử dụng biến siêu toàn cục:
-
Dễ dàng truy cập: với các biến siêu toàn cục, chúng ta có thể truy cập vào các dữ liệu từ bất kỳ đâu trong mã nguồn mà không cần cung cấp thêm thông tin. Điều này giúp cho việc xử lý dữ liệu trở nên đơn giản và thuận tiện hơn.
-
Giúp tiết kiệm thời gian và công sức: thay vì phải xử lý từng biến một khi có nhiều biểu mẫu và dữ liệu, chúng ta chỉ cần sử dụng các biến siêu toàn cục để lấy dữ liệu và xử lý chúng trong mã nguồn. Điều này giúp tiết kiệm thời gian và công sức của lập trình viên.
-
Dễ dàng quản lý: sử dụng các biến siêu toàn cục giúp cho việc quản lý dữ liệu trở nên dễ dàng hơn. Chúng ta có thể tổ chức và lưu trữ các dữ liệu trong các biến này một cách hợp lý hơn, từ đó giúp cho mã nguồn trở nên gọn gàng và dễ hiểu hơn.
Cách sử dụng biến siêu toàn cục trong phương thức POST
Để sử dụng biến siêu toàn cục $_POST trong mã nguồn của trang web, chúng ta cần thực hiện các bước sau:
-
Đặt thuộc tính method="post" trong thẻ <form> của biểu mẫu HTML. Ví dụ: <form method="post" action="xuly.php">
-
Tạo các ô input trong biểu mẫu với thuộc tính name tương ứng. Ví dụ: <input type="text" name="username">
-
Trong trang xử lý (xuly.php), chúng ta có thể sử dụng biến $_POST['name'] để lấy dữ liệu từ biểu mẫu. Trong đó, name là giá trị của thuộc tính name trong ô input tương ứng. Ví dụ: $_POST['username'].
Ví dụ sau đây minh họa cách sử dụng biến siêu toàn cục $_POST để lấy dữ liệu từ một biểu mẫu HTML:
<!DOCTYPE html>
<html>
<head>
<title>Example using $_POST</title>
</head>
<body>
<form method="post" action="xuly.php">
<label for="name">Name:</label>
<input type="text" id="name" name="username">
<input type="submit" value="Submit">
</form>
</body>
</html>
<?php
//xuly.php
if(isset($_POST['username'])){
$username = $_POST['username'];
echo "Hello, " . $username;
}
?>
Kết quả khi submit biểu mẫu:
Cách sử dụng biến siêu toàn cục trong phương thức GET
Để sử dụng biến siêu toàn cục $_GET trong mã nguồn của trang web, chúng ta cần thực hiện các bước sau:
-
Đặt thuộc tính method="get" trong thẻ <form> của biểu mẫu HTML. Ví dụ: <form method="get" action="xuly.php">
-
Tạo các ô input trong biểu mẫu với thuộc tính name tương ứng. Ví dụ: <input type="text" name="username">
-
Trong trang xử lý (xuly.php), chúng ta có thể sử dụng biến $_GET['name'] để lấy dữ liệu từ biểu mẫu. Trong đó, name là giá trị của thuộc tính name trong ô input tương ứng. Ví dụ: $_GET['username'].
Ví dụ sau đây minh họa cách sử dụng biến siêu toàn cục $_GET để lấy dữ liệu từ một biểu mẫu HTML:
<!DOCTYPE html>
<html>
<head>
<title>Example using $_GET</title>
</head>
<body>
<form method="get" action="xuly.php">
<label for="name">Name:</label>
<input type="text" id="name" name="username">
<input type="submit" value="Submit">
</form>
</body>
</html>
<?php
//xuly.php
if(isset($_GET['username'])){
$username = $_GET['username'];
echo "Hello, " . $username;
}
?>
Kết quả khi submit biểu mẫu:
Bảo mật khi sử dụng biến siêu toàn cục
Mặc dù việc sử dụng biến siêu toàn cục có nhiều ưu điểm, tuy nhiên chúng cũng có thể gây ra những vấn đề liên quan đến bảo mật nếu không được sử dụng đúng cách. Để đảm bảo an toàn cho trang web của bạn, có một số điều cần lưu ý khi sử dụng biến siêu toàn cục:
-
Luôn kiểm tra các giá trị được gửi tới từ biến siêu toàn cục trước khi sử dụng chúng trong mã nguồn. Chúng ta có thể sử dụng các hàm như htmlspecialchars() để tránh việc lỗ hổng XSS (cross-site scripting).
-
Không bao giờ hiển thị các giá trị của biến siêu toàn cục trực tiếp trên trang web mà không có bất kỳ kiểm tra nào. Điều này có thể dẫn đến việc tiết lộ thông tin nhạy cảm của người dùng.
-
Sử dụng cơ chế xác thực (authentication) và phân quyền (authorization) để đảm bảo rằng chỉ những người dùng có quyền mới có thể truy cập vào các dữ liệu quan trọng trong biến siêu toàn cục.
Xử lý dữ liệu nhận được từ biến siêu toàn cục
Khi nhận được dữ liệu từ biến siêu toàn cục, chúng ta có thể xử lý và sử dụng chúng như bất kỳ loại dữ liệu nào khác trong PHP. Dữ liệu truyền tới thông qua biến siêu toàn cục có thể là chuỗi (string), số (integer), hay một mảng (array), tuỳ thuộc vào cách chúng ta truyền dữ liệu từ biểu mẫu.
Ví dụ, chúng ta có thể sử dụng hàm isset() để kiểm tra xem một biến có được gửi tới hay không. Nếu biến đã được gửi tới, chúng ta có thể thực hiện các thao tác xử lý dữ liệu, như in ra dữ liệu hay lưu trữ vào các cơ sở dữ liệu.
<?php
if(isset($_POST['username'])){
$username = $_POST['username'];
echo "Hello, " . $username;
}
?>
Ngoài ra, chúng ta cũng có thể sử dụng các hàm như filter_var() để kiểm tra tính hợp lệ của dữ liệu trước khi sử dụng. Ví dụ, chúng ta có thể kiểm tra tính hợp lệ của một địa chỉ email bằng cách sử dụng FILTER_VALIDATE_EMAIL:
<?php
if(isset($_POST['email'])){
$email = $_POST['email'];
if(filter_var($email, FILTER_VALIDATE_EMAIL)){
//thực hiện các thao tác xử lý với dữ liệu email hợp lệ
}else{
echo "Email không hợp lệ!";
}
}
?>
Kết luận: sử dụng biến siêu toàn cục $_POST hoặc $_GET trong PHP là một cách hiệu quả để lấy dữ liệu từ các biểu mẫu HTML, giúp cho việc xử lý và quản lý dữ liệu trở nên dễ dàng hơn, đặc biệt là khi website của bạn có phải xử lý với rất nhiều biểu mẫu.
Tuy nhiên, để đảm bảo an toàn cho trang web của bạn, chúng ta cần lưu ý các điều cần thực hiện khi sử dụng biến siêu toàn cục và kiểm tra tính hợp lệ của dữ liệu trước khi sử dụng.
Hy vọng bài viết này đã giúp bạn hiểu rõ hơn về cách sử dụng biến siêu toàn cục để lấy dữ liệu từ biểu mẫu HTML trong PHP.