page.php?id=123&name=abc,超連結、AJAX、API 皆適用。<form action="get.php" method="get">
Name: <input type="text" name="username">
<input type="submit" value="OK">
</form>
<?php
// 輸入 www.111cn.net 送出
echo 'You are ' . htmlspecialchars($_GET['username']) . '.';
// 輸出:You are www.111cn.net.
?>
get.php?username=www.111cn.net
<a href="a.php?value=my">連結</a>
<!-- a.php -->
<?php
echo 'value 的值是 ' . htmlspecialchars($_GET['value']) . '.<br>';
// 輸出:value 的值是 my.
?>
<form action="checkbox.php" method="get">
<input type="checkbox" name="fruit[]" value="Apple"> Apple<br>
<input type="checkbox" name="fruit[]" value="Orange"> Orange<br>
<input type="checkbox" name="fruit[]" value="Mango"> Mango<br>
<input type="submit" value="OK">
</form>
<?php
// 勾選 Orange、Mango 送出
echo count($_GET['fruit']) . '<br>'; // 2
foreach ($_GET['fruit'] as $val) {
echo htmlspecialchars($val) . '<br>';
}
// 輸出:
// 2
// Orange
// Mango
?>
關鍵:name="fruit[] 中的 [] 讓 PHP 自動將多個同名欄位組成陣列。
| 項目 | 說明 |
|---|---|
| 長度限制 | URL 總長度約 2048 字元 (瀏覽器/伺服器限制),$_GET 不適合大量資料。 |
| 可見性 | 參數明文顯示於網址列、瀏覽器歷史、伺服器日誌,**不可傳遞密碼/敏感資訊**。 |
| 快取/書籤 | GET 請求可被快取、書籤、分享,適合搜尋、分頁、篩選等冪等操作。 |
| XSS 防護 | 輸出 $_GET 內容到 HTML **必須**用 htmlspecialchars()。 |
| 編碼 | 瀏覽器自動 URL 編碼中文/特殊字元,PHP 自動解碼填入 $_GET。 |
<?php
// $_REQUEST = $_GET + $_POST + $_COOKIE (順序受 variables_order 影響)
// 不建議直接使用,來源不明確,安全性較低
// 明確使用 $_GET、$_POST、$_COOKIE
?>
method="get" 只用於非敏感、可分享、冪等操作。htmlspecialchars()。[]。isset($_GET['id'])、ctype_digit($_GET['id'])、範圍檢查。extract($_GET) 污染變數空間。