Anomalie #12432
ferméIPARAPHEUR - Réponses non récupérées lorsqu'une note comporte un saut de ligne
Description
/var/www/html/MaarchCourrier1810/src/core/models/CurlModel.php l138
...
if (empty($body)) {
$body = explode(PHP_EOL, $rawResponse)[5];
...
$rawResponse représente le contenu de la requête curl.
les 4 premiers éléments de explode(PHP_EOL, $rawResponse) sont les headers
et le dernier élément une méta info également.
Si le contenu de la réponse comporte un saut de ligne, la requête est tronquée et donc plus interprétable.
Fix appliqué au SITIV (le bug bloquait les retours des parapheurs de l'instance de Corbas)
$cookies = [];
if (!empty($aArgs['options'][CURLOPT_HEADER])) {
preg_match_all('/Set-Cookie:\s*([;]*)/mi', $rawResponse, $matches);
foreach ($matches[1] as $item) {
$cookie = explode("=", $item);
$cookies = array_merge($cookies, [$cookie[0] => $cookie[1]]);
}
$rawResponse = substr($rawResponse, $infos['header_size']);
} elseif (!empty($aArgs['delete_header'])) { // Delete header for iparapheur
$body = explode(PHP_EOL . PHP_EOL, $rawResponse)[1]; // put the header ahead
if (empty($body)) {
//$body = explode(PHP_EOL, $rawResponse)[5];
$body = explode(PHP_EOL, $rawResponse);
// we remove the 4 starting item of the array (header)
for($i =0; $i < 5; $i++) array_shift($body);
// and the last item (footer)
array_pop($body);
$body = join('', $body);
}
$pattern = '/--uuid:[0-9a-f-]+--/'; // And also the footer
$rawResponse = preg_replace($pattern, '', $body);
}