首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 相關知識

PHP 超全域變數完整指南:$GLOBALS、$_SERVER、$_REQUEST、$_POST、$_GET、$_SESSION 等

     編輯:PHP 相關知識

PHP 超全域變數完整指南

超全域變數在腳本所有作用域自動可用,無需 global 宣告。PHP 定義 9 個超全域變數,本文詳細說明各自用途與常用鍵值。

九大超全域變數

  • $GLOBALS
  • $_SERVER
  • $_REQUEST
  • $_POST
  • $_GET
  • $_FILES
  • $_ENV
  • $_COOKIE
  • $_SESSION

$GLOBALS - 所有全域變數陣列

$x = 75; $y = 25;
function add() { $GLOBALS['z'] = $GLOBALS['x'] + $GLOBALS['y']; }
add();
echo $z; // 100
  • 鍵名 = 變數名,值 = 變數值
  • 函式內可直接存取/修改全域變數

$_SERVER - 伺服器與執行環境資訊

鍵名說明範例
PHP_SELF當前腳本路徑/index.php
SERVER_NAME伺服器主機名example.com
HTTP_HOST請求 Host 標頭example.com:8080
HTTP_REFERER來源頁面 (不可靠)https://google.com/
HTTP_USER_AGENT瀏覽器識別字串Mozilla/5.0...
SCRIPT_NAME當前腳本路徑/index.php
REQUEST_METHOD請求方法GET, POST
REQUEST_TIME請求開始時間戳1700000000
QUERY_STRING查詢字串id=1&page=2
REMOTE_ADDR客戶端 IP192.168.1.1
SERVER_ADDR伺服器 IP10.0.0.1
SERVER_PORT伺服器埠號80
HTTPS是否 HTTPSon / 空

$_REQUEST - 合併 GET/POST/COOKIE

$name = $_REQUEST['fname']; // 同時支援 ?fname=xxx 或 POST fname=xxx
// 注意:鍵名衝突時優先順序由 variables_order 決定 (預設 GPC)

建議: 明確使用 $_GET 或 $_POST,避免來源混淆。

$_POST - POST 請求表單資料

<form method="post" action="?>
    Name: <input name="fname">
    <input type="submit">
</form>
<?php $name = $_POST['fname']; ?>

$_GET - GET 請求查詢字串 / URL 參數

<a href="test.php?subject=PHP&web=example.com">連結</a>
// test.php
echo $_GET['subject']; // PHP
echo $_GET['web'];     // example.com

$_FILES - 檔案上傳資訊

$_FILES['myfile']['name']     // 原始檔名
$_FILES['myfile']['type']     // MIME 類型
$_FILES['myfile']['tmp_name'] // 暫存路徑
$_FILES['myfile']['error']    // 錯誤代碼 (0=成功)
$_FILES['myfile']['size']     // 檔案大小 (bytes)

$_COOKIE - Cookie 資料

setcookie('user', 'John', time()+3600);
echo $_COOKIE['user']; // John

$_SESSION - Session 資料

session_start();
$_SESSION['user_id'] = 123;
echo $_SESSION['user_id']; // 123

$_ENV - 環境變數

echo $_ENV['HOME']; // /home/user

安全性最佳實踐

  • **永遠不信任**超全域變數輸入,輸出前必須驗證、過濾、轉義
  • 使用 filter_input()、filter_var() 進行輸入驗證
  • 資料庫查詢使用預處理陳述式
  • HTML 輸出用 htmlspecialchars() 防 XSS
  • $_REQUEST 易造成安全漏洞,**建議禁用或僅在必要時使用**

熟悉 9 大超全域變數用途與常用鍵值,配合輸入驗證與輸出轉義,是 PHP 安全開發的基石。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved