首頁 >後端開發 >PHP問題 >解決php無法接受post值的問題

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

hzc
hzc原創
2020-06-04 17:15:253601瀏覽

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

在出現這種情況的時候需要檢查我們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值的問題的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn