PHP 4.2 起 register_globals 預設關閉,不再自動將表單欄位註冊為同名全域變數。舊代碼若直接用 $username 會失效。
$username = $_POST['username']; 或 $_GET['username']。明確、安全、可讀性高。import_request_variables("gp", "rvar_"); → 產生 $rvar_username。import_request_variables("gp", ""); → 直接產生 $username(相容舊碼)。g=GET、p=POST、c=COOKIE;第二參數為前綴。| 陣列 | 來源 | 可見性 | 長度限制 | 適用場景 |
|---|---|---|---|---|
$_GET | URL 參數 / method="get" | 瀏覽器網址列可見 | 約 2000 字元(瀏覽器/伺服器限制) | 搜尋、分頁、非敏感資料、可書籤 |
$_POST | method="post" 表單 | 不可見(Request Body) | 無實質限制(受 post_max_size) | 登入、註冊、修改資料、上傳檔案、敏感資訊 |
$_REQUEST | $_GET + $_POST + $_COOKIE | 混合 | 混合 | 不在乎來源的通用取值(略低安全性) |
form.html
<form action="welcome.php" method="post"> Name: <input type="text" name="name" /> Age: <input type="text" name="age" /> <input type="submit" /> </form>
welcome.php
<?php echo "Welcome " . htmlspecialchars($_POST["name"]) . ".<br>"; echo "You are " . (int)$_POST["age"] . " years old."; ?>
延伸專題:PHP 檔案操作、運算符、網絡編程、基礎語法、Office 文件、日期時間、OOP 入門、字串用法、MySQL 入門、常見資料庫操作匯總。