我们有一台运行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;
}
}
}
有人可以解释一下吗?
由于