У нас есть сервер с PHP 5.3 с волшебными кавычками ON:
magic_quotes_gpc On On
magic_quotes_runtime Off Off
Whenever we receive a POST (CONTENT_TYPE: application/x-www-form-urlencoded) that contains xml that's un-sanitized (has quotes,&,<,> in the element payload), SimpleXML cannot parse it.
Когда я смотрю на исходный дамп $ _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;
}
}
}
Может кто-нибудь объяснить это?
благодаря