- 工信部備案號 滇ICP備05000110號-1
- 滇公安備案 滇53010302000111
- 增值電信業(yè)務(wù)經(jīng)營(yíng)許可證 B1.B2-20181647、滇B1.B2-20190004
- 云南互聯(lián)網(wǎng)協(xié)會(huì )理事單位
- 安全聯(lián)盟認證網(wǎng)站身份V標記
- 域名注冊服務(wù)機構許可:滇D3-20230001
- 代理域名注冊服務(wù)機構:新網(wǎng)數碼
昨天在微信中公眾號開(kāi)發(fā)中使用$GLOBALS["HTTP_RAW_POST_DATA"]來(lái)獲取微信公眾平臺推送過(guò)來(lái)的post數據,結果驚奇的發(fā)現微信號總是提示“該微信公眾號暫時(shí)無(wú)法提供服務(wù)”,仔細去檢查代碼,也沒(méi)錯,可就是無(wú)法提供服務(wù)。今天又檢查了一把,還是沒(méi)有語(yǔ)法錯誤,于是乎,我將中間的所有數據全部寫(xiě)到的記事本里去,通過(guò)及時(shí)本發(fā)現$GLOBALS["HTTP_RAW_POST_DATA"]獲取的數據是空的。經(jīng)過(guò)資料查找,終于發(fā)現了解決的套路:
$GLOBALS ["HTTP_RAW_POST_DATA"]跟$_POST,file_get_contents('php://input') 差不多,用$GLOBALS ["HTTP_RAW_POST_DATA"]或file_get_contents('php://input')的情況大多是為了獲取$_POST無(wú)法接收的數據類(lèi)型(如XML數據)
在$GLOBALS ["HTTP_RAW_POST_DATA"]取不到值的情況下可以按以下方式排查:
1.用file_get_contents('php://input')獲取數據。如果獲取不到,則可能是數據傳輸錯誤,對請求進(jìn)行捉包,分析數據。
2.如果file_get_contents('php://input')有數據。則查看php.ini配置文件。
找到如下,如果沒(méi)開(kāi)啟則開(kāi)啟
注意:這種處理方式是在php版本較低的時(shí)候,在php-ini中才有的配置,當版本升級到7,或者更高的時(shí)候該機制就被廢棄掉了。
微信接口$GLOBALS['HTTP_RAW_POST_DATA']接收不到值
$xml = $GLOBALS['HTTP_RAW_POST_DATA'];
打印$xml出來(lái),結果是null
使用的是php7,原因是php7已移除這個(gè)全局變量,改成
$xml = file_get_contents("php://input");
即可
售前咨詢(xún)
售后咨詢(xún)
備案咨詢(xún)
二維碼
TOP