解決php無法接受post值的問題

2020-07-16 10:06:35

在出現這種情況的時候需要檢查我們header頭中的引數

Content-Type:的值

php://input可以讀取沒有處理過的POST資料。相較於$HTTP_RAW_POST_DATA而言,它給記憶體帶來的壓力較小,並且不需要特殊的php.ini設置。php://input不能用於enctype=multipart/form-data

不過我通過程式碼對比總結,得出結果如下:

1.Coentent-Type為application/x-www-data-urlencodedmultipart/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-Typeapplication/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教學

以上就是解決php無法接受post值的問題的詳細內容,更多請關注TW511.COM其它相關文章!