Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:29220 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 53844 invoked by uid 1010); 6 May 2007 18:34:03 -0000 Delivered-To: ezmlm-scan-internals@lists.php.net Delivered-To: ezmlm-internals@lists.php.net Received: (qmail 53829 invoked from network); 6 May 2007 18:34:03 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 6 May 2007 18:34:03 -0000 X-Host-Fingerprint: 75.57.38.117 adsl-75-57-38-117.dsl.irvnca.sbcglobal.net Received: from [75.57.38.117] ([75.57.38.117:23352] helo=localhost.localdomain) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id 05/C4-06274-89F1E364 for ; Sun, 06 May 2007 14:34:01 -0400 Message-ID: <05.C4.06274.89F1E364@pb1.pair.com> To: internals@lists.php.net Date: Sun, 06 May 2007 11:34:05 -0700 User-Agent: Thunderbird 1.5.0.12pre (Windows/20070504) MIME-Version: 1.0 References: <20070504201847.547329627@smtp.haun-online.de> In-Reply-To: <20070504201847.547329627@smtp.haun-online.de> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Posted-By: 75.57.38.117 Subject: Re: Bug? Raw POST data in PHP 5.2.2, take two From: unknown@simplemachines.org ("Unknown W. Brackets") It sounds like you have register_globals off, which is a good thing imho. You are trying $HTTP_RAW_POST_DATA but my recollection tells me it is $_SERVER['HTTP_RAW_POST_DATA']. Does the latter work? Anyway, reading from php://input is more correct and doesn't depend on PHP settings as much, as far as I know. -[Unknown] -------- Original Message -------- > I believe this is a bug in PHP 5.2.2. I've tried to report this for PHP > 5.2.2RC2 but apparently wasn't making myself clear or wasn't following > the proper procedures ... > > Anyway, as I wrote before[1], "raw" POST data isn't making it through in > PHP 5.2.2 which results in XML-RPC communications to fail, at least when > using the PEAR::XML_RPC package. > > Consider this little script (send.php): > > --- snip --- > > require_once 'XML/RPC.php'; > > $sourceURI = 'http://www.example.com/'; // doesn't matter here > $targetURI = $sourceURI; > > $client = new XML_RPC_Client('/receive.php', $_SERVER['HTTP_HOST']); > $client->setDebug(1); > $msg = new XML_RPC_Message('pingback.ping', > array(new XML_RPC_Value($sourceURI, 'string'), > new XML_RPC_Value($targetURI, 'string'))); > > $response = $client->send($msg, 0, 'http'); > > ?> > --- snip --- > > This makes a simple XML-RPC call as used for Pingbacks. For the > receiving end of the communication, let's use this as receive.php: > > --- snip --- > > print_r(getallheaders()); > > echo $GLOBALS['HTTP_RAW_POST_DATA'] . "\n\n"; > > ?> > --- snip --- > > Now when I call up send.php (both located in the web root of a server > running PHP 5.2.2), I get this output: > > ---GOT--- > HTTP/1.1 200 OK > Date: Fri, 04 May 2007 20:07:58 GMT > Server: Apache/1.3.37 (Unix) PHP/5.2.2 > X-Powered-By: PHP/5.2.2 > Connection: close > Content-Type: text/html > > Array > ( > [Content-Length] => 282 > [Content-Type] => text/xml > [Host] => myhost.example.com > [User-Agent] => PEAR XML_RPC > ) >
> Notice: Undefined index: HTTP_RAW_POST_DATA in /usr/local/ > apache/vhost/geeklog/public_html/receive.php on line 5
> > ---END--- > > So $GLOBALS['HTTP_RAW_POST_DATA'] is not set. The PEAR::XML_RPC package > actually uses $HTTP_RAW_POST_DATA on the receiving end, but that doesn't > appear to be set either. And the always_populate_raw_post_data option in > php.ini doesn't make a difference. > > Switching back to PHP 5.2.1 (same machine, same configuration) makes > everything work as expected: > > ---GOT--- > HTTP/1.1 200 OK > Date: Fri, 04 May 2007 20:11:28 GMT > Server: Apache/1.3.37 (Unix) PHP/5.2.1 > X-Powered-By: PHP/5.2.1 > Connection: close > Content-Type: text/html > > Array > ( > [Content-Length] => 282 > [Content-Type] => text/xml > [Host] => myhost.example.com > [User-Agent] => PEAR XML_RPC > ) > > > pingback.ping > > > http://www.example.com/ > > > http://www.example.com/ > > > > > ---END--- > > This is on a Linux box, but I have confirmation (thanks, Mike) of the > same thing happening on Windows. > > Can anyone please > > 1) confirm this or tell me what I'm doing wrong and > 2) tell me what else I should have done (other than posting here and > emailing Ilia, as the PHP 5 release manager), in case I ever run into > something similar again. > > Thanks. > > bye, Dirk > > [1] > >