Edit report at https://bugs.php.net/bug.php?id=60826&edit=1
ID: 60826 Updated by: paj...@php.net Reported by: clarkwise at gmail dot com Summary: raw POST data missing with chunked encoding, FastCGI Status: Assigned Type: Bug Package: CGI/CLI related Operating System: Windows XP PHP Version: 5.3.9 Assigned To: ab Block user comment: N Private report: N New Comment: Try a snapshot please, 5.3.10 has nothing else but security fixes unrelated to this issue. Previous Comments: ------------------------------------------------------------------------ [2012-03-09 09:33:06] florian dot fernandez at navaho dot fr The problem seems to have been resolved with php 5.4.0 and apache 2.4.1. I can't reproduce it with this configuration and chunked http requests are now coming through to php now. I am going to try with php 5.3.10 and apache 2.4.1 and give feedback on where it goes. ------------------------------------------------------------------------ [2012-03-05 11:46:27] florian dot fernandez at navaho dot fr I forgot to mention that this is on a Linux system ------------------------------------------------------------------------ [2012-03-05 10:08:17] florian dot fernandez at navaho dot fr Same problem here. Apache 2.2.15 and PHP 5.3.10 running as FastCGI. POST datas sent with "Transfer-encoding: chunked" are not received as they should be. The raw request looks like this : POST receiveChunk.php HTTP/1.1 User-Agent: PECL::HTTP/1.7.2 (PHP/5.3.8) Host: www.test.fr Accept: */* Pragma: no-cache Connection: keep-alive Cache-Control: no-cache Content-Length: 682668 Transfer-Encoding: chunked Content-Type: text/html; charset=UTF-8 3ff4 (here, the datas) 0 and the request as the receiving script sees it : User-Agent: PECL::HTTP/1.7.2 (PHP/5.3.8) Host: www.test.fr Accept: */* Pragma: no-cache Connection: close Cache-Control: no-cache As you can see, the request body is empty. However, this problem does not occur when PHP runs as mod_php under Apache. Problem confirmed under PHP 5.3.8 and 5.3.9. I don't know if that is a PHP bug and maybe the developers could confirm or not that the request body are wrong before it reaches PHP. I think that it appears to be a mod_fcgid bug and should be reported as one to Apache bug list. Here are the scripts to reproduce the bug : sendChunk.php : <?php $fileContentToUp = 'ICAgICAgICAgIgICAgIA=='; $header_array = array( 'Pragma' => 'no-cache', 'Connection' => 'keep-alive', 'Cache-Control' => 'no-cache', 'Content-Length' => strlen($fileContentToUp) , 'Transfer-Encoding' => 'chunked' ); $options = array(headers => $header_array); $r = new HttpRequest('receiveChunk.php', HTTP_METH_POST, $options); $r->setContentType('text/html; charset=UTF-8'); $r->setBody($fileContentToUp); $result = $r->send(); echo '$r->getRawRequestMessage() => '; print_r($r->getRawRequestMessage()); echo "\n\n"; echo '$r->send()->getBody() => '; print_r($r->send()->getBody()); echo "\n\n"; ?> receiveChunk.php : <?php $HttpResponse = new HttpResponse(); echo 'http_get_request_header => '."\n"; print_r($HttpResponse->getRequestHeaders()); echo "\n\n"; echo 'http_get_request_body => '."\n"; print_r($HttpResponse->getRequestBody()); echo "\n\n"; ?> Hope that helps. ------------------------------------------------------------------------ [2012-03-01 20:24:53] clarkwise at gmail dot com Since I am using Windows XP, I'm stuck using IIS 5.1. When I have the opportunity to try nginx w/ chunkin or IIS 7.5, I'll update with further details. Thanks. ------------------------------------------------------------------------ [2012-03-01 08:31:15] a...@php.net @clarkwise at gmail dot com So could you confirm it works with nginx+chunkin? As well, it's was not hanging with IIS (v7.5) for me. Which IIS version do you have? ------------------------------------------------------------------------ The remainder of the comments for this report are too long. To view the rest of the comments, please view the bug report online at https://bugs.php.net/bug.php?id=60826 -- Edit this bug report at https://bugs.php.net/bug.php?id=60826&edit=1