Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:29202 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 67350 invoked by uid 1010); 4 May 2007 20:19:01 -0000 Delivered-To: ezmlm-scan-internals@lists.php.net Delivered-To: ezmlm-internals@lists.php.net Received: (qmail 67335 invoked from network); 4 May 2007 20:19:01 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 4 May 2007 20:19:01 -0000 Authentication-Results: pb1.pair.com smtp.mail=dirk@haun-online.de; spf=pass; sender-id=pass Authentication-Results: pb1.pair.com header.from=dirk@haun-online.de; sender-id=pass Received-SPF: pass (pb1.pair.com: domain haun-online.de designates 80.67.18.16 as permitted sender) X-PHP-List-Original-Sender: dirk@haun-online.de X-Host-Fingerprint: 80.67.18.16 smtprelay04.ispgateway.de Linux 2.4/2.6 Received: from [80.67.18.16] ([80.67.18.16:55769] helo=smtprelay04.ispgateway.de) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id 1F/BC-21644-0359B364 for ; Fri, 04 May 2007 16:18:58 -0400 Received: (qmail 15773 invoked from network); 4 May 2007 20:18:53 -0000 Received: from unknown (HELO [192.168.0.150]) (050981@[84.161.18.237]) (envelope-sender ) by smtprelay04.ispgateway.de (qmail-ldap-1.03) with SMTP for ; 4 May 2007 20:18:53 -0000 To: Date: Fri, 4 May 2007 22:18:47 +0200 Message-ID: <20070504201847.547329627@smtp.haun-online.de> X-Mailer: CTM PowerMail version 5.5.3 build 4480 German (PPC) Organization: Terra Software Systems MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Subject: Bug? Raw POST data in PHP 5.2.2, take two From: dirk@haun-online.de ("Dirk Haun") 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 --- 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 --- --- 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] -- http://www.geeklog.net/ http://geeklog.info/