php中post方法的主要用途是「傳遞」數據,它將資料放在所有請求標題的後面上傳,使用程式碼語句如“
推薦:《PHP影片教學》
$_POST陣列
GET方法的本意就是下載(與其對應的是上傳方法PUT),因此並不是專門用於傳遞資料的,它將請求資料全部經過URL編碼後綴在請求資源的後面,這樣一來,當資料很多時URL就會變得很長-但這並不是問題的所在,問題所在是一些WEB瀏覽器或伺服器程式會限制這行字串的長度。這時,就需要用到 POST方法了。
顧名思義,POST方法的主要用途就是「傳遞」數據,它將數據放在所有請求標題的後面上傳,這樣一來,無論有多少數據上傳都不成問題了(這樣請求數據的大小之取決於WEB服務允許的尺寸了)。通常來說,對於表單資料如無特別需要都使用POST方法來上傳,這樣就無須去關心具體上傳資料的尺寸了。
POST方法的請求資料被封裝到了$_POST數組中,其使用方法與$_GET數組一樣。將上面的表單添加一個method屬性,就變成了這樣:
<!– post.php文件 –> <?php if($_POST['post']) { foreach($_POST as $index = > $value) echo “$_POST[$index] = $value”, “<BR>”; } ?> <form action=”post.php” method=”post”> <label for=”id”>账号:</label><input type=”text” name=”id”> <label for=”password”>密码:</label><input type=”text” name=”password”> <input type=”submit” name=”post” value=”提交”> </form>
另一個有趣的設定是,GET方法和POST方法並不矛盾,在POST方法中同樣可以傳遞GET變量,將上面的post.php檔案稍微改動一下,就成了這樣:
<!– post.php文件 –> <?php if($_POST['post']) { foreach($_POST as $index = > $value) echo “$_POST[$index] = $value”, “<BR>”; foreach($_GET as $index = > $value) echo “$_GET[$index] = $value”, “<BR>”; } ?> <form action=”post.php?act=login” method=”post”> <label for=”id”>帐号:</label><input type=”text” name=”id”> <label for=”password”>密码:</label><input type=”text” name=”password”> <input type=”submit” name=”post” value=”提交”> </form>
該程式同時處理了GET方法(act 參數)和POST方法(id 和password 參數)的請求數據,GET方法的請求變數後綴在了表單action屬性值的後面,這樣只有一點問題,就是GET方法的請求變數不能由使用者來輸入。通常,固定的資料使用GET方法,由使用者輸入的資料使用POST方法來傳送,兩種方法區分開了不同邏輯的資料。不過讀者在建構這種表單的時候,一定要注意兩種方法不要有相同的變數名,否則會出現不可預料的後果。最後,需要注意的是,當使用GET方法發送資料時,則