itRef.cn技术参考网站

当前位置: 主页 > PHP >

ci无法接收ucenter的php://input通知信息

时间:2013-10-16 21:08来源:未知 作者:wiwi 点击:
问题描述 ci(codeigniter)2.1.4整合ucenter1.6后,在ucenter后台查看可以正常通信,但当开启同步登录和同步消息后,发现更新应用列表的消息始终无法正常通知。经过仔细调试后发现,ucenter通知的时候使用的是直接post xml的方式(php://input),而ci在syste

问题描述

ci(codeigniter)2.1.4整合ucenter1.6后,在ucenter后台查看可以正常通信,但当开启同步登录和同步消息后,发现更新应用列表的消息始终无法正常通知。经过仔细调试后发现,ucenter通知的时候使用的是直接post xml的方式(php://input),而ci在system/core/Input.php 中会对所有post key里含有特殊字符的http请求进行过滤,导致了ucenter发送的通知无法接收。

问题解决

修改system/core/Input.php中过滤post参数的部分。

  1. $_POST[$this->_clean_input_keys($key)] = $this->_clean_input_data($val); 

改为

  1. if(strpos(strtolower($key), "<?xml") === false) $_POST[$this->_clean_input_keys($key)] = $this->_clean_input_data($val); 

(责任编辑:wiwi) 转载请注明 来源于itRef.cn技术参考网站:
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
栏目列表
推荐内容