国产欧美日韩第一页|日本一二三不卡视频|在线精品小视频,亚洲第一免费播放区,metcn人体亚洲一区,亚洲精品午夜视频

解決$GLOBALS[“HTTP_RAW_POST_DATA”]獲取不到數據的問(wèn)題

2018-09-07 12:35:18 9899

解決$GLOBALS[“HTTP_RAW_POST_DATA”]獲取不到數據的問(wèn)題

昨天在微信中公眾號開(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)啟

always_populate_raw_post_data = On

注意:這種處理方式是在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");

即可


提交成功!非常感謝您的反饋,我們會(huì )繼續努力做到更好!

這條文檔是否有幫助解決問(wèn)題?

非常抱歉未能幫助到您。為了給您提供更好的服務(wù),我們很需要您進(jìn)一步的反饋信息:

在文檔使用中是否遇到以下問(wèn)題:
-->