php中$_POST接收不到參數問題
阿新 • • 發佈:2018-09-06
總結 .org http請求 特殊 不能 長度 描述 tip 並且
.
3, 只要Content-Type不為multipart/form-data的時候,PHP將不會把http請求body體數據填入php://input,否則其它情況都會。填入的長度,由Content-Length指定。
4,只有Content-Type為application/x-www-data-urlencoded時,php://input數據才跟$_POST數據相一致。
5,php://input與HTTPRAWPOSTDATA??.相同,但是php://input比??HTTP_RAW_POST_DATA更效率,並不需要配置php.ini
6.http請求的,GET形式下,body體為空。
解決方法:
問題描述:PHP可以接收_GET、_SERVER、_COOKIE等參數,php://input可以讀取沒有處理過的POST數據,獨獨_POST接收不到post參數。
原因:php://input可以讀取沒有處理過的POST數據。相較於$HTTP_RAW_POST_DATA而言,它給內存帶來的壓力較小,並且不需要特殊的php.ini設置。php://input不能用於enctype=multipart/form-data”
不過我通過代碼對比總結,得出結果如下:
1.Coentent-Type為application/x-www-data-urlencoded和multipart/form-data兩種情況下,PHP會將請求數據傳遞給$_POST
2.PHP不能識別的Content-Type類型的時候,會將http請求包中相應的數據填入變量$HTTP_RAW_POST_DATA
3, 只要Content-Type不為multipart/form-data的時候,PHP將不會把http請求body體數據填入php://input,否則其它情況都會。填入的長度,由Content-Length指定。
4,只有Content-Type為application/x-www-data-urlencoded時,php://input數據才跟$_POST數據相一致。
5,php://input與HTTPRAWPOSTDATA??.相同,但是php://input比??HTTP_RAW_POST_DATA更效率,並不需要配置php.ini
6.http請求的,GET形式下,body體為空。
修改php.ini
enable_post_data_reading = On
always_populate_raw_post_data = On
重啟apache即可解決。
php中$_POST接收不到參數問題