php無法接收post參數的解決方法:1.檢查頭資訊「content-type」;2、使用【file_get_contents("php://input")】方法取得輸入流。
推薦:《PHP視訊教學》
php介面post資料接收不到參數原因
1.檢查頭資訊content-type是不是為「content-type:application/x-www-form-urlencoded" 這種傳輸是以表單的方式提交資料php使用$_POST方式接受。
2.如果頭資訊content-type是不是為「content-type:application/json"這種傳輸是以json方式提交數據,php需要使用file_get_contents("php://input")來取得輸入流的方式接受
3、初學php,用echo $_POST["variable"]和var_dump($_POST) 都取得不到post資料。
解決方法如下:
1.找到php.ini 設定檔,尋找enable_post_data_reading變量,確保其開啟狀態,並且該語句前面的分號要去掉(有分號的語句是註解語句):
2.觀察你的執行php的瀏覽器位址,會發現在PhpStorm中開啟瀏覽器使用的服務埠號碼是63342(URL是localhost:63342/這樣的形式)
因此問題的原因在於:PhpStorm預設使用的是自帶的內部伺服器,卻不使用xampp裡面的apache伺服器。 phpStorm這個內建伺服器使用63342端口,而且伺服器內部有問題,導致POST方法異常;而如果把項目放在Apache伺服器的工作目錄下,在地址列輸入localhost,此時使用的是Apache伺服器,預設端口號為80,Apache伺服器可以正常運作程式。
既然PhpStorm內部伺服器有問題,那麼解決方法就是想辦法不使用內部伺服器。有兩種方法:
1.將專案建立在Apache伺服器的工作目錄下,每次執行時在瀏覽器網址列直接輸入localhost位址
2.如果仍希望透過從PhpStorm中開啟瀏覽器偵錯程序,可以透過變更設定實現:
(1)先將apache伺服器目錄對應到本機目錄
做法如下:
##1. 找到/xampp/apache/conf/httpd.conf 檔案2. 找到<Directory "E:/phpworkspace/"> AllowOverride All Options Indexes FollowSymLinks Includes ExecCGI Require all granted </Directory>
以上是php無法接收post參數怎麼辦的詳細內容。更多資訊請關注PHP中文網其他相關文章!