Edit report at https://bugs.php.net/bug.php?id=60826&edit=1
ID: 60826
Updated by: pajoye@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] ab@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