Hello "Unknown",

you are wrong, the name is right please learn your lessons before
writing to internals.

To the original problem: Ilia committed a fix a few hours ago which
should fix the problem. Feel free to test a current snapshot.

johannes

On Sun, 2007-05-06 at 11:34 -0700, Unknown W. Brackets wrote:
> 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 ---
> > <?php
> > 
> > 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 ---
> > <?php
> > 
> > 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
> > )
> > <br />
> > <b>Notice</b>:  Undefined index:  HTTP_RAW_POST_DATA in <b>/usr/local/
> > apache/vhost/geeklog/public_html/receive.php</b> on line <b>5</b><br />
> > 
> > ---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
> > )
> > <?xml version="1.0" encoding="UTF-8"?>
> > <methodCall>
> > <methodName>pingback.ping</methodName>
> > <params>
> > <param>
> > <value><string>http://www.example.com/</string></value>
> > </param>
> > <param>
> > <value><string>http://www.example.com/</string></value>
> > </param>
> > </params>
> > </methodCall>
> > 
> > ---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] <http://news.php.net/php.internals/29103>
> > 
> > 
> 

-- 
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to