來自 PHP 之外的變量HTML 表單(GET 和 POST)當一個表單體交給 PHP 腳本時,表單中的訊息會自動在腳本中可用。有很多方法訪問此訊息,例如:
根據特定的設定和個人的喜好,有很多種方法訪問 HTML 表單中的資料。例如:
使用 GET 表單也類似,只不過要用適當的 GET 預定義變量。GET 也適用於 QUERY_STRING(URL 中在「?」之後的訊息)。因此,舉例說,http://www.example.com/test.php?id=3 包括有可用 $_GET['id'] 訪問的 GET 資料。參見 $_REQUEST 和 import_request_variables()。
如上所示,在 PHP 4.2.0 之前 register_globals 的預設值是 on。在 PHP 3 中其值總是 on。PHP 社區鼓勵大家不要依賴此指令,建議在編碼時假定其為 off。
PHP 也懂得表單變量上下文中的陣列(參見關聯常見問題)。例如可以將關聯的變量編成組,或是用此特性從多選輸入框中取得值。例如,將一個表單 POST 給自己並在送出時顯示資料:
在 PHP 3 中,變量使用中的陣列僅限於一維陣列。在 PHP 4 中,沒有此種限制。 IMAGE SUBMIT 變量名當送出表單時,可以用一幅圖像代替標準的送出按鈕,用類似這樣的旗標: 當會員點閱到圖像中的某處時,相應的表單會被傳輸到伺服器,並加上兩個變量 sub_x 和 sub_y。它們包括了會員點閱圖像的坐標。有經驗的會員可能會注意到被瀏覽器傳送的實際變量名包括的是一個點而不是下劃線(即 sub.x 和 sub.y),但 PHP 自動將點轉換成了下劃線。 HTTP CookiesPHP 透明地支援 Netscape 規範定義中的 HTTP cookies。Cookies 是一種在遠端瀏覽器端存儲資料並能追蹤或識別再次訪問的會員的機制。可以用 setcookie() 函數設定 cookies。Cookies 是 HTTP 訊息頭中的一部分,因此 SetCookie 函數必須在向瀏覽器傳送任何輸出之前呼叫。對於 header() 函數也有同樣的限制。Cookie 資料會在相應的 cookie 資料陣列中可用,例如 $_COOKIE,$HTTP_COOKIE_VARS 和 $_REQUEST。更多細節和例子見 setcookie() 手冊頁面。 若果要將多個值賦給一個 cookie 變量,必須將其賦成陣列。例如:
這將會建立兩個單獨的 cookie,儘管 MyCookie 在腳本中是一個單一的陣列。若果想在僅僅一個 cookie 中設定多個值,考慮先在值上使用 serialize() 或 explode()。 注意在瀏覽器中一個 cookie 會置換掉上一個同名的 cookie,除非路徑或是功能變數不同。因此對於購物車程式可以保留一個計數器並一起傳遞,例如:
變量名中的點通常,PHP 不會改變傳遞給腳本中的變量名。然而應該注意到點(句號)不是 PHP 變量名中的合法字元。至於原因,看看:
出於此原因,要注意 PHP 將會自動將變量名中的點置換成下劃線。 確定變量類型因為 PHP 會判斷變量類型並在需要時進行轉換(通常情況下),因此在某一時刻給定的變量是何種類型並不明顯。PHP 內含幾個函數可以判斷變量的類型,例如:gettype(),is_array(),is_float(),is_int(),is_object() 和 is_string()。參見類型一章。 | |||||||||