ID: 41293
Comment by: sylvain at jamendo dot com
Reported By: jerome at rainstormconsulting dot com
Status: Assigned
Bug Type: HTTP related
Operating System: linux (centos or ubuntu)
PHP Version: 5.2.2
Assigned To: iliaa
New Comment:
I used the same fix as Jerome,
if (phpversion()=="5.2.2") $GLOBALS['HTTP_RAW_POST_DATA'] =
file_get_contents("php://input");
Anyway, this seems like a duplicate of a bug that appeared in 5.1.0 (cf
changelog)
I just can't believe there is no unit tests for this kind of bugs that
should never ever appear again.
Previous Comments:
------------------------------------------------------------------------
[2007-05-06 13:42:54] jerome at rainstormconsulting dot com
Putting this in a file all my services include seems to be working,
but I only did this on a test machine, i will not upgrade our
production server until this is resolved though.
if (!isset($HTTP_RAW_POST_DATA)){
$HTTP_RAW_POST_DATA = file_get_contents('php://input');
}
------------------------------------------------------------------------
[2007-05-06 13:35:26] sylvain at jamendo dot com
Are you aware that this is a *major* issue?
All our xmlrpc backends are broken because of this bug, both with pear
XML_RPC and XML_RPC2.
Is there a workaround besides php://input ?
------------------------------------------------------------------------
[2007-05-05 14:10:44] develar at gmail dot com
>> php://input is not affected
only in start script, but in end script php://input is empty.
------------------------------------------------------------------------
[2007-05-04 21:13:59] [EMAIL PROTECTED]
Only happens with RPC stuff. (soap / xml-rpc /..).
php://input is not affected.
------------------------------------------------------------------------
[2007-05-04 19:50:32] jerome at rainstormconsulting dot com
Description:
------------
PHP 5.2.2 fails to ever have $HTTP_RAW_POST_DATA set despite the ini
setting to being On
Reproduce code:
---------------
Server:
<?php
$server = new SoapServer('myservice.wsdl');
$server->setClass('MyService');
$server->handle();
client:
<?php
$client = new SoapClient('myservice.wsdl', array('trace' => 1,
'exceptions' => 1));
try {
$client->doSomething();
}
catch(SoapFault $e) {
print 'Service failure, error message: '.$e->faultstring;
}
Expected result:
----------------
This should proceed with no problems, an already working service setup
in a web application, functioning on both PHP 5.1.6 and PHP 5.2.1 with
no issues at all. Should produce no error.
Actual result:
--------------
Service failure, error message: Bad Request. Can't find
HTTP_RAW_POST_DATA
You USUALLY only see this if you access the server file (say
xmlrpc.php) directly without posting any data.
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=41293&edit=1