微信官方PHP接口无法获得postStr数据
2017-09-25 13:54
609 查看
在微信官方提供的PHP接口文档中,处理主要业务有这么一段代码
这个方法中通过
要通过Globals来获取数据,php.ini中的register_globals必须设置为ON,在低版本的php中register数据默认为开启,但是高版本中,默认为关闭状态,这是因为,设置为ON后,表单提交过来的变量,会自动变成变量,也就是说
在地址栏输入的变量,都变成全局变量,这个是非常不安全的。
除了
public function getIndex(){ if (ob_get_contents()) ob_end_clean(); $postStr = isset($GLOBALS["HTTP_RAW_POST_DATA"])?$GLOBALS["HTTP_RAW_POST_DATA"]:'';//获取post过来的数据 if (!empty($postStr)){ $postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA); $this->postObj = $postObj; $this->fromUserName = $postObj->FromUserName;//发送方 $this->toUserName = $postObj->ToUserName;//接收方(即本公众账号) $this->msgType = trim($postObj->MsgType);//消息类型 $this->content = trim($postObj->Content); $this->event = trim($postObj->Event); $this->eventKey = trim($postObj->EventKey); $this->dealMsg(); }else{ $this->wx->makeInfo(Input::all()); $this->wx->valid();//非消息推送时,默认为校验 } flush(); }
这个方法中通过
GLOBALS这个全局变量来获取原始的Post数据,但是这个方法也同时存在问题。
要通过Globals来获取数据,php.ini中的register_globals必须设置为ON,在低版本的php中register数据默认为开启,但是高版本中,默认为关闭状态,这是因为,设置为ON后,表单提交过来的变量,会自动变成变量,也就是说
在地址栏输入的变量,都变成全局变量,这个是非常不安全的。
除了
$GLOBALS["HTTP_RAW_POST_DATA"]获取post来的数据,也可以通过
file_get_contents("php://input")方法来获取post来的数据,
相关文章推荐
- Xcode7.0网络问题,无法获得接口数据是HTTP的问题
- php使用CURL模拟GET与POST向微信接口提交及获取数据的方法
- 【转帖】通过PHP读取dbf数据(visual fox pro,VFP数据库),官方的dbase无法读取字段为类型memo的数据,国外网站的解决方案 How to read FoxPro Memo with PHP?
- 【Day40】php官方微信接口大全(微信支付、微信红包、微信摇一摇、微信小店)
- php模拟GET与POST向微信接口提交及获取数据的方法
- php微信接口开发的数据获取和自动回复
- php官方微信接口大全(微信支付、微信红包、微信摇一摇、微信小店)
- php官方微信接口大全(微信支付、微信红包、微信摇一摇、微信小店)
- php版微信数据统计接口用法示例
- 微信接口开发,新浪云无法写入jssdk.php
- php官方微信接口大全(微信支付、微信红包、微信摇一摇、微信小店)
- 学习微信官方代码wx_sample.php
- phpcms开发微信小程序接口之获取栏目信息(get_categorys.php)
- MyBatis第三种方式,xml和接口的结合,以及如何获得插入数据的返回参数、传入空的参数
- PHP微信刮刮卡 附微信接口
- 采集练习(十一) php 获得电视节目预告---数据来自电视猫
- 七牛云存储官方接口PHP版本
- php 无法接收post数据
- PHP微信服务号消息回复接口
- php接口 接受ios或android端图片; php接收NSData数据