PHP - $_GET: Hướng dẫn cho người mới bắt đầu

Giới thiệu

Xin chào các nhà phát triển PHP tương lai! Hôm nay, chúng ta sẽ cùng tìm hiểu về một trong những biến toàn cục được sử dụng phổ biến nhất trong PHP: $_GET. Đừng lo lắng nếu bạn chưa từng nghe đến nó trước đây - đến cuối bài hướng dẫn này, bạn sẽ sử dụng nó như một chuyên gia!

PHP - $_GET

$_GET là gì?

$_GET là một biến PHP đặc biệt cho phép chúng ta thu thập dữ liệu được gửi qua URL. Nó giống như một phong bì ma thuật mang thông tin từ một trang web đến trang web khác. Hãy tưởng tượng bạn đang gửi một thẻ bài cho bạn - địa chỉ trên thẻ bài đó tương tự như cách $_GET hoạt động trong PHP.

Các tính năng chính của $_GET

Tính năng Mô tả
Loại Biến toàn cục
Mục đích Thu thập dữ liệu từ URL
Khả năng truy cập Có sẵn trong tất cả các phạm vi
Định dạng dữ liệu Mảng liên hợp
Bảo mật Dữ liệu hiển thị trong URL

Cách $_GET hoạt động

Khi bạn thấy một URL như http://example.com/page.php?name=John&age=25, tất cả những gì sau dấu hỏi (?) là dữ liệu mà $_GET có thể truy cập. Hãy phân tích nó:

  • name=John là một mảnh dữ liệu
  • & phân tách các mảnh dữ liệu khác nhau
  • age=25 là một mảnh dữ liệu khác

Trong PHP, chúng ta có thể truy cập dữ liệu này bằng $_GET['name'] và $_GET['age'].

Ví dụ $_GET đầu tiên

Hãy bắt đầu với một ví dụ đơn giản. Tạo một tệp名叫 greeting.php với mã sau:

<!DOCTYPE html>
<html>
<body>
<h1>Chào mừng, <?php echo $_GET['name']; ?>!</h1>
</body>
</html>

Bây giờ, nếu bạn truy cập tệp này với URL như greeting.php?name=Sarah, bạn sẽ thấy "Chào mừng, Sarah!" trên trang.

Giải thích

Trong ví dụ này, chúng ta đang sử dụng $_GET['name'] để lấy giá trị 'name' từ URL. PHP tự động xử lý việc phân tích URL và cung cấp dữ liệu cho chúng ta.

Xử lý nhiều tham số

$_GET có thể xử lý nhiều tham số dễ dàng. Hãy mở rộng ví dụ của chúng ta:

<!DOCTYPE html>
<html>
<body>
<h1>Chào mừng, <?php echo $_GET['name']; ?>!</h1>
<p>Bạn <?php echo $_GET['age']; ?> tuổi và bạn sống ở <?php echo $_GET['city']; ?>.</p>
</body>
</html>

Bây giờ, bạn có thể sử dụng URL như greeting.php?name=Sarah&age=30&city=New York để hiển thị tất cả thông tin này.

Kiểm tra xem tham số có tồn tại không

Luôn là một ý tưởng tốt để kiểm tra xem tham số có tồn tại trước khi sử dụng nó. Dưới đây là cách thực hiện:

<!DOCTYPE html>
<html>
<body>
<?php
if(isset($_GET['name'])) {
echo "<h1>Chào mừng, " . $_GET['name'] . "!</h1>";
} else {
echo "<h1>Chào mừng, khách!</h1>";
}
?>
</body>
</html>

Mã này kiểm tra xem 'name' có được đặt trong mảng $_GET hay không. Nếu có, chúng ta sử dụng nó; nếu không, chúng ta hiển thị một thông báo mặc định.

Vấn đề bảo mật

Mặc dù $_GET rất hữu ích, nhưng hãy nhớ rằng dữ liệu hiển thị trong URL. Điều này có nghĩa là nó không phù hợp cho thông tin nhạy cảm như mật khẩu. Luôn làm sạch dữ liệu $_GET trước khi sử dụng nó trong ứng dụng của bạn để ngăn chặn các vấn đề bảo mật.

Dưới đây là ví dụ về cách làm sạch đầu vào:

<?php
$name = isset($_GET['name']) ? htmlspecialchars($_GET['name']) : '';
echo "Xin chào, " . $name;
?>

Chức năng htmlspecialchars() chuyển đổi các ký tự đặc biệt thành các thực thể HTML, giúp ngăn chặn các cuộc tấn công XSS.

Ứng dụng thực tế: Một biểu mẫu tìm kiếm đơn giản

Hãy áp dụng tất cả những gì chúng ta đã học vào một biểu mẫu tìm kiếm đơn giản:

<!DOCTYPE html>
<html>
<body>
<form action="search.php" method="get">
<input type="text" name="query">
<input type="submit" value="Tìm kiếm">
</form>

<?php
if(isset($_GET['query'])) {
$query = htmlspecialchars($_GET['query']);
echo "Bạn đã tìm kiếm: " . $query;
// Tại đây, bạn thường sẽ thực hiện một tìm kiếm cơ sở dữ liệu với $query
}
?>
</body>
</html>

Trong ví dụ này, chúng ta đã tạo một biểu mẫu submit đến chính nó. Khi một truy vấn tìm kiếm được gửi, nó sẽ được hiển thị trên trang. Trong một ứng dụng thực tế, bạn sẽ sử dụng truy vấn này để tìm kiếm cơ sở dữ liệu hoặc thực hiện một hành động khác.

Kết luận

Và thế là bạn đã bước vào thế giới của $_GET trong PHP. Nhớ rằng, thực hành là cách tốt nhất để trở thành chuyên gia, vì vậy đừng ngần ngại thử nghiệm với các khái niệm này. Trước khi bạn biết, bạn sẽ xây dựng các ứng dụng web động, tương tác và phản hồi đầu vào của người dùng như một chuyên gia!

Chúc bạn may mắn trong việc mã hóa, và mong rằng các yêu cầu $_GET của bạn luôn trả về chính xác những gì bạn đang tìm kiếm!

Credits: Image by storyset