PHP - $_GET:初學者的指南

簡介

你好,未來的PHP開發者!今天,我們將要深入探討PHP中最常使用的超全局變量之一:$_GET。如果你以前從未聽過它,別擔心——在這個教程結束之前,你將會像專業人士一樣使用它!

PHP - $_GET

$_GET是什麼?

$_GET是一個特殊的PHP變量,它允許我們通過URL收集數據。它就像一個神奇的信封,將信息從一個網頁傳遞到另一個網頁。想像你正在給朋友寄一張明信片——那張明信片上的地址與PHP中的$_GET工作原理相似。

$_GET的主要特性

特性 描述
類型 超全局變量
目的 從URL收集數據
可訪問性 在所有範圍內可使用
數據格式 關聯數組
安全性 數據在URL中可見

$_GET的工作原理

當你看到像http://example.com/page.php?name=John&age=25這樣的URL時,問號(?)之後的所有內容都是$_GET可以訪問的數據。讓我們來分解它:

  • name=John 是一個數據片段
  • & 分隔不同的數據片段
  • age=25 是另一個數據片段

在PHP中,我們可以使用$_GET['name']和$_GET['age']來訪問這些數據。

你的第一個$_GET範例

讓我們從一個簡單的範例開始。創建一個名為greeting.php的文件,並添加以下代碼:

<!DOCTYPE html>
<html>
<body>
<h1>歡迎,<?php echo $_GET['name']; ?>!</h1>
</body>
</html>

現在,如果你使用像greeting.php?name=Sarah這樣的URL訪問這個文件,你將在頁面上看到"歡迎,Sarah!"。

解釋

在這個範例中,我們使用$_GET['name']從URL中檢索'name'值。PHP會自動解析URL並將數據提供給我們。

處理多個參數

$_GET可以輕鬆地處理多個參數。讓我們擴展我們的範例:

<!DOCTYPE html>
<html>
<body>
<h1>歡迎,<?php echo $_GET['name']; ?>!</h1>
<p>你今年<?php echo $_GET['age']; ?>歲,住在<?php echo $_GET['city']; ?>。</p>
</body>
</html>

現在,你可以使用像greeting.php?name=Sarah&age=30&city=New%20York這樣的URL來顯示所有這些信息。

檢查參數是否存在

在使用參數之前檢查它是否存在總是個好習慣。以下是如何操作的:

<!DOCTYPE html>
<html>
<body>
<?php
if(isset($_GET['name'])) {
echo "<h1>歡迎," . $_GET['name'] . "!</h1>";
} else {
echo "<h1>歡迎,訪客!</h1>";
}
?>
</body>
</html>

這段代碼檢查'name'是否在$_GET數組中設置。如果是,我們使用它;如果不是,我們顯示一個默認消息。

安全考慮

雖然$_GET非常有用,但請記住數據在URL中是可見的。這意味著它不適合用於像密碼這樣的敏感信息。在使用$_GET數據之前,總是消毒以防止安全問題。

以下是如何消毒輸入的範例:

<?php
$name = isset($_GET['name']) ? htmlspecialchars($_GET['name']) : '';
echo "你好," . $name;
?>

htmlspecialchars()函數將特殊字符轉換為他們的HTML實體,幫助防止XSS攻擊。

實際應用:一個簡單的搜索表單

讓我們將我們學到的所有知識投入實踐,創建一個簡單的搜索表單:

<!DOCTYPE html>
<html>
<body>
<form action="search.php" method="get">
<input type="text" name="query">
<input type="submit" value="搜索">
</form>

<?php
if(isset($_GET['query'])) {
$query = htmlspecialchars($_GET['query']);
echo "你搜索了:" . $query;
// 在這裡,你通常會使用$query對數據庫進行搜索或執行其他操作
}
?>
</body>
</html>

在這個範例中,我們創建了一個提交給自己的表單。當提交搜索查詢時,它會在頁面上顯示。在實際應用程序中,你會使用這個查詢來搜索數據庫或執行其他操作。

結論

現在,你已經踏出了進入PHP中$_GET世界的第一步。記住,熟練需要練習,所以不要害怕嘗試這些概念。在你意識到之前,你將會像專業人士一樣建立動態的、響應用戶輸入的網絡應用程序!

祝你好運,願你的$_GET請求總是返回你所尋找的!

Credits: Image by storyset