程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> PHP中$_GET $_POST $_REQUEST區別介紹

PHP中$_GET $_POST $_REQUEST區別介紹

編輯:關於PHP編程

     PHP中有$_REQUEST與$_POST、$_GET用於接受表單數據。

    一、$_REQUEST與$_POST、$_GET的區別和特點

    $_REQUEST[]具用$_POST[] $_GET[]的功能,但是$_REQUEST[]比較慢。通過POST和GET方法提交的所有數據都可以通過$_REQUEST數組獲得。

    二、$_POST、$_GET的區別和特點

    1. GET是從服務器上獲取數據,POST是向服務器傳送數據。
    2. GET是把參數數據隊列加到提交表單的ACTION屬性所指的URL中,值和表單內各個字段一一對應,在URL中可以看到。POST是通過HTTP POST機制,將表單內各個字段與其內容放置在HTML HEADER內一起傳送到ACTION屬性所指的URL地址。用戶看不到這個過程。
    3. 對於GET方式提交表單數據,服務器端用$_GET[‘name’]獲取變量的值,對於POST方式提交表單數據,服務器端用$_POST[‘name’]獲取提交的數據,當然,兩者都可以通過$_REQUEST[‘name’]獲得表單數據。對於REQUEST方式提交表單數據,服務器端用$_REQUEST[‘name’]獲取變量的值,但這種方式很少用。
    4. GET傳送的數據量較小,不能大於2KB。POST傳送的數據量較大,一般被默認為不受限制。但理論上,一般認為不能超過100KB。
    5. GET安全性非常低,POST安全性較高。
    6. GET表單值可以通過_GET獲取;但通過action的url設置的參數總是獲取不到的,<form method="get" action="a.asp?b=b">跟<form method="get"action="a.asp">是一樣的,也就是說,在這種情況下,GET方式會忽略action頁面後邊帶的參數列表。POST表單值可以通過_POST獲取;但通過action的url參數設置的參數則可以不能通過_POST獲取到。action=test.php?id=1這種就是GET方式傳值,可以用$_REQUEST和$_GET接受傳值,但不能用POST方式獲取到值,即使表單是POST方式提交。所在,在提交表單時,如果action中同時有參數,最好只能通過POST表單方式,對於表單內數據,直接通過POST獲取,對於action中參數,童工GET獲取。
    在做數據查詢時,建議用GET方式,而在做數據添加、修改或刪除時,建議用POST方式。
    request是先讀取 get再讀post 的, 同時存在, 即覆蓋掉前面的變量。

    經典實例:

    <?php
    echo "get\n";
    print_r($_GET);
    echo "post\n";
    print_r($_POST);
    echo "request\n";
    print_r($_REQUEST);
    ?>
    < form method=post action='?a=1&b=2'>
    < input type=text name=a value='a'>
    < input type=text name=b value='b'>
    < input type=submit value=test>
    < /form>

    輸出結果:

    get:
    Array
    (
    [a] => 1
    [b] => 2
    )
    post:
    Array
    (
    [a] => a
    [b] => b
    )
    request:
    Array
    (
    [a] => a
    [b] => b
    )

    其實,在php配置文件php.ini中有一個設置項:variables_order = "GPCS" ,GPCS分別是GET,POST,Cookie,Server的首字母縮寫,variables_order = "GPCS"含義是php文件中變量的解析順序是GET,POST,Cookie和Server。

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