程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

論$

編輯:PHP基礎知識
 

看書看到$_POST、$_GET與$_REQUEST,有如下解釋:

PHP腳本訪問表單數據的方式采用檢索$_POST、$_GET或$_REQUEST數組之一。$_GET或$_POST數組之一都可以保存表單數據的細節。使用哪一個數組取決於提交表單時使用的方法是POST還是GET。此外,通過POST或GET方法及其組合方式提交的所有數據都可以通過$_REQUEST數組獲得。

不禁有一個疑問,既然$_REQUEST數組可以獲得$_GET與$_POST數組中的數據,那還要這兩種訪問表單數據的方式做什麼?帶著這樣的疑問查找未果。最後還是得查看PHP手冊,點擊直接查看結論。

總結如下:

  1. $_POST
    1. $_POST變量用於收集來自method="post"的表單中的值。
    2. post是通過HTTP POST機制,將表單內各個字段與其內容放置在HTML HEADER內一起傳送到ACTION屬性所指的URL地址,用戶看不到這個過程。
    3. URL不能添加為書簽直接訪問。
    4. 安全性較高。
    5. 數據量比$_GET方式要大,具體與服務器端設置相關。
  2. $_GET
    1. $_GET變量用於收集來自method=”get”的表單中的值。
    2. GET是把參數數據隊列加到提交表單的ACTION屬性所指的URL中,值和表單內各個字段一一對應,在URL中可以看到。
    3. URL可以添加到書簽直接進行訪問。
    4. 安全性非常低。
    5. 傳送數據量不能超過2KB。
  3. $_REQUEST
    1. PHP中$_REQUEST變量可以收集$_GET與$_POST以及$_COOKIE中的變量內容。
    2. 使用$_REQUEST方式來獲得post和get方式傳遞的變量一般要比$_POST和$_GET方式慢一些。
    3. $_REQUEST方式獲得的變量可能不安全,因為$_REQUEST變量數組中的數據可能被優先級更高的數據替換。

    在PHP的配置文件(php.ini)裡有如下的設置:

    ; This directive describes the order in which PHP registers GET, POST, Cookie,
    ; Environment and Built-in variables (G, P, C, E & S respectively, often
    ; referred to as EGPCS or GPC). Registration is done from left to right, newer
    ; values override older values.
    variables_order = "EGPCS"
    

    這個EGPCS就是說明用$_REQUEST數組獲取內容的優先級,其字母的含義分別代表為:E代表$_ENV,G代表$_GET,P代表$_POST,C代表$_COOKIE,S代表$_SESSION。後面出現的數據會覆蓋前面寫入的數據,其默認的數據寫入方式就是EGPCS,所以POST包含的數據將覆蓋GET中使用相同關鍵字的數據。

 
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved