HTTP_RAW_POST_DATA fails to ever be set
| Bug #41293 | HTTP_RAW_POST_DATA fails to ever be set | |||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Submitted: | 2007-05-04 19:50 UTC | Modified: | 2007-05-06 16:34 UTC |
|
||||||||||
| From: | jerome at rainstormconsulting dot com | Assigned: | iliaa (profile) | |||||||||||
| Status: | Closed | Package: | HTTP related | |||||||||||
| PHP Version: | 5.2.2 | OS: | linux (centos or ubuntu) | |||||||||||
| Private report: | No | CVE-ID: | None | |||||||||||
[2007-05-04 19:50 UTC] 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.
Patches
Pull Requests
History
AllCommentsChangesGit/SVN commits
[2007-05-04 21:13 UTC] sniper@php.net
[2007-05-05 14:10 UTC] develar at gmail dot com
[2007-05-06 13:35 UTC] sylvain at jamendo dot com
[2007-05-06 13:42 UTC] 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 14:06 UTC] sylvain at jamendo dot com
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.[2007-05-06 16:34 UTC] iliaa@php.net
[2011-04-12 06:38 UTC] php at yahoo dot com