|
php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login |
[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.
PatchesPull RequestsHistoryAllCommentsChangesGit/SVN commits
|
|||||||||||||||||||||||||||||||||||||
Copyright © 2001-2025 The PHP GroupAll rights reserved. |
Last updated: Sat Nov 01 04:00:02 2025 UTC |
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'); }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.