php接收不到post資料原因

(*-*)浩
發布: 2023-02-27 09:52:02
原創
6398 人瀏覽過

php接收不到post資料原因

檢查頭資訊content-type是不是為「content-type:application/x-www-form-urlencoded" 這種傳輸是以表單的方式提交資料php使用$_POST方式接受。  (推薦學習:PHP影片教學

如果頭資訊content-type是不是為「content-type:application/json"這種傳輸是以json方式提交數據,php需要使用file_get_contents("php://input")取得輸入流的方式接受

初學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. 找到 程式碼區塊

3. 在的子層級加上以下程式碼:

# /phpworkspace/ : 其它磁盘上目录的别名, 就是你想映射过来的目录的别名
# "E:/phpworkspace/" : 这个是目录的绝对路径
Alias /phpworkspace/ "E:/phpworkspace/"
# 现在就可以通过 //localhost/phpworkspace/ 访问到 E盘下phpworkspace文件夹里的项目了
登入後複製

4. 在與 同級的地方加上一段程式碼, 如下:

<Directory "E:/phpworkspace/">
    AllowOverride All
    Options Indexes FollowSymLinks Includes ExecCGI
    Require all granted
</Directory>
登入後複製

完成. 現在重啟Apache, 訪問: http://localhost/phpworkspace/ 就可以了

(2)然後在PhpStorm中,依序找到File->Settings->Build, Execution, Deployment->Deployment,初始是空的,點擊綠色的加號添加本地伺服器,名字localhost就好了,Type選擇In place:

創建完成後,右側Connection標籤下預設的設定已經將伺服器配置為80端口下的Apache伺服器,即http://localhost

將其改成你對應到本地專案的工作目錄,Mappings標籤下的Local path設定成你本地專案的目錄。

此時從PhpStorm點擊瀏覽器,存取的URL已經沒有了63342埠這個字段,而是使用了本地Apache伺服器,對應的表單資料也可以正常接收了

以上是php接收不到post資料原因的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
php
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!