$ _POST数据在双引号后被截断

时间:2013-01-09 19:07:35

标签: php post simplexml

我们有一台运行PHP 5.3的服务器,带有魔术引号:

magic_quotes_gpc On On magic_quotes_runtime Off Off

每当我们收到一个POST(CONTENT_TYPE:application / x-www-form-urlencoded),其中包含未经过清理的XML(在元素有效负载中有引号,&,<,>),SimpleXML无法解析它

当我查看原始$ _POST转储时,XML将从第一个非法字符转发中截断。从来没有见过这个。

然后,我添加了htmlspecialchars,一切都很开心,XML可以通过SimpleXML进行解析。

$payload = htmlspecialchars(stripslashes(trim($postXMLPayload)));

这表明虽然非法的XML确实存在于$ _POST数组中,但是当我试图看到它时,它被截断了。

我正在通过电子邮件发送$ _POST中的值,并在两种情况下对其进行数据处理 $ _POST中的值被截断。

以下是我获取$ _POST值的方法

if(isset($_POST)){

foreach($_POST as $k=>$v){

    if(preg_match('/^\<\?xml/',trim($v))){

        $postXMLPayload = $v;
        break;
    }

}

}

有人可以解释一下吗?

由于

0 个答案:

没有答案