Re: [PHP-DEV] Bug? Raw POST data in PHP 5.2.2, take two

2007-05-07 Thread Dirk Haun
David Coallier wrote:

 Anyone has an answer/tests to that bug* so we can stop this discussion ? :)

The bug has apparently been fixed in CVS. Haven't had a chance to test
it, but will do as soon as possible.

Now the question is: When can we expect an update? I see people talking
about what should go into PHP 5.2.3. How about this bugfix, possibly a
few others, and then release it ASAP? As in by the end of this week (or
thereabouts)?

This bug affects a lot of sites that use XML-RPC communication of some
form or another. Quite a lot of those nifty Web 2.0 sites, I would
assume. And since people will be updating quickly due to the security
issues fixed with 5.2.2, they may be in for a surprise.

So can we have an update soon, please?

bye, Dirk

P.S. And if anyone would be willing to answer some of the questions from
my original post, I'd be grateful.


-- 
http://www.geeklog.net/
http://geeklog.info/

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



Re: [PHP-DEV] Bug? Raw POST data in PHP 5.2.2, take two

2007-05-07 Thread Ilia Alshanetsky


On 7-May-07, at 2:35 PM, Dirk Haun wrote:


David Coallier wrote:

Anyone has an answer/tests to that bug* so we can stop this  
discussion ? :)


The bug has apparently been fixed in CVS. Haven't had a chance to test
it, but will do as soon as possible.


Please let me know how it works out. One interesting feature of the  
old code is that HTTP_RAW_POST_DATA could be present even when the  
INI option controlling its creation was off, this was a bug and will  
not be re-instated.


Now the question is: When can we expect an update? I see people  
talking
about what should go into PHP 5.2.3. How about this bugfix,  
possibly a
few others, and then release it ASAP? As in by the end of this  
week (or

thereabouts)?


I suspect in a week or two. Definitely sooner then later.


This bug affects a lot of sites that use XML-RPC communication of some
form or another. Quite a lot of those nifty Web 2.0 sites, I would
assume. And since people will be updating quickly due to the security
issues fixed with 5.2.2, they may be in for a surprise.


I sure hope those nifty Web 2.0 sites don't use SOAP and XML-RPC but  
rather JSON or REST.


Ilia Alshanetsky

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



Re: [PHP-DEV] Bug? Raw POST data in PHP 5.2.2, take two

2007-05-07 Thread Dirk Haun
Ilia Alshanetsky wrote:

 The bug has apparently been fixed in CVS. Haven't had a chance to test
 it, but will do as soon as possible.

Please let me know how it works out.

I've tested php5.2-200705071830.tar.gz from snaps.php.net and the bug
seems to be fixed. Thanks.


One interesting feature of the  
old code is that HTTP_RAW_POST_DATA could be present even when the  
INI option controlling its creation was off, this was a bug and will  
not be re-instated.

I had a suspicion that something wasn't right there. No problem with
that change - that's what the INI option is for.


 Now the question is: When can we expect an update?

I suspect in a week or two. Definitely sooner then later.

Sounds good.


I sure hope those nifty Web 2.0 sites don't use SOAP and XML-RPC but  
rather JSON or REST.

Okay, but XML-RPC is used for Pingbacks, Trackbacks, and for pinging
weblog directories like Technorati. That's something like the backbone
of the entire blogosphere.

bye, Dirk


-- 
http://www.geeklog.net/
http://geeklog.info/

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



Re: [PHP-DEV] Bug? Raw POST data in PHP 5.2.2, take two

2007-05-07 Thread Rasmus Lerdorf
Ilia Alshanetsky wrote:
 
 On 7-May-07, at 2:35 PM, Dirk Haun wrote:
 
 David Coallier wrote:

 Anyone has an answer/tests to that bug* so we can stop this
 discussion ? :)

 The bug has apparently been fixed in CVS. Haven't had a chance to test
 it, but will do as soon as possible.
 
 Please let me know how it works out. One interesting feature of the old
 code is that HTTP_RAW_POST_DATA could be present even when the INI
 option controlling its creation was off, this was a bug and will not be
 re-instated.

I must have missed something.  Did you change the documented behaviour
that $_SERVER['HTTP_RAW_POST_DATA'] is populated when PHP encounters an
unknown content type?  If so, that was most definitely not a bug and not
something that should have been changed.

-Rasmus

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



Re: [PHP-DEV] Bug? Raw POST data in PHP 5.2.2, take two

2007-05-07 Thread Ilia Alshanetsky


On 7-May-07, at 4:00 PM, Rasmus Lerdorf wrote:


I must have missed something.  Did you change the documented behaviour
that $_SERVER['HTTP_RAW_POST_DATA'] is populated when PHP  
encounters an
unknown content type?  If so, that was most definitely not a bug  
and not

something that should have been changed.


If lack of post handler is classified by an unknown content type then  
yes, where is it documented btw?


Ilia Alshanetsky

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



Re: [PHP-DEV] Bug? Raw POST data in PHP 5.2.2, take two

2007-05-07 Thread Rasmus Lerdorf
Ilia Alshanetsky wrote:
 
 On 7-May-07, at 4:00 PM, Rasmus Lerdorf wrote:
 
 I must have missed something.  Did you change the documented behaviour
 that $_SERVER['HTTP_RAW_POST_DATA'] is populated when PHP encounters an
 unknown content type?  If so, that was most definitely not a bug and not
 something that should have been changed.
 
 If lack of post handler is classified by an unknown content type then
 yes, where is it documented btw?

Right where you would expect:

http://www.php.net/manual/en/ini.core.php

always_populate_raw_post_data  boolean

Always populate the $HTTP_RAW_POST_DATA containing the raw POST
data. Otherwise, the variable is populated only with unrecognized
MIME type of the data. However, the preferred method for accessing
the raw POST data is php://input. $HTTP_RAW_POST_DATA is not
available with enctype=multipart/form-data.

The language could be clearer I suppose, but I don't think there is any
mistaking what it means there.  And this is also referred to in all
sorts of other places in the documentation, books, articles and code
examples.  I thought this was a very well established behaviour, but I
guess not.  Please revert.

-Rasmus

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



Re: [PHP-DEV] Bug? Raw POST data in PHP 5.2.2, take two

2007-05-07 Thread Richard Lynch
On Mon, May 7, 2007 2:30 pm, Dirk Haun wrote:
 Ilia Alshanetsky wrote:
I sure hope those nifty Web 2.0 sites don't use SOAP and XML-RPC but
rather JSON or REST.

 Okay, but XML-RPC is used for Pingbacks, Trackbacks, and for pinging
 weblog directories like Technorati. That's something like the backbone
 of the entire blogosphere.

And sometimes ya gotta use what the other guy provides...

Even if you think it's a Bad Idea.

Yes, you could, maybe, run your own little middleman server to
download/cache and serve in whatever format you want, but there are
all kinds of real-world reasons why that might not be
allowed/acceptable.

-- 
Some people have a gift link here.
Know what I want?
I want you to buy a CD from some indie artist.
http://cdbaby.com/browse/from/lynch
Yeah, I get a buck. So?

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



Re: [PHP-DEV] Bug? Raw POST data in PHP 5.2.2, take two

2007-05-05 Thread Dirk Haun
Ilia Alshanetsky wrote:

Also, have you tried accessing the data from php://input ?

Okay, that appears to work. Using this script as the receive.php:

?php

echo (file_get_contents(php://input));

?

I now get

---GOT---
HTTP/1.1 200 OK
Date: Sat, 05 May 2007 08:01:49 GMT
Server: Apache/1.3.37 (Unix) PHP/5.2.2
X-Powered-By: PHP/5.2.2
Connection: close
Content-Type: text/html

?xml version=1.0 encoding=UTF-8?
methodCall
methodNamepingback.ping/methodName
params
param
valuestringhttp://www.example.com//string/value
/param
param
valuestringhttp://www.example.com//string/value
/param
/params
/methodCall

---END---

So the raw post data is available via php://input but not via
$HTTP_RAW_POST_DATA or $GLOBALS['HTTP_RAW_POST_DATA'].

Also, this problem only affects PHP 5.2.2. Things are working fine with
PHP 4.4.7.

bye, Dirk


-- 
http://www.geeklog.net/
http://geeklog.info/

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



[PHP-DEV] Bug? Raw POST data in PHP 5.2.2, take two

2007-05-04 Thread 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 ---
?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 /
bNotice/b:  Undefined index:  HTTP_RAW_POST_DATA in b/usr/local/
apache/vhost/geeklog/public_html/receive.php/b on line b5/bbr /

---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
methodNamepingback.ping/methodName
params
param
valuestringhttp://www.example.com//string/value
/param
param
valuestringhttp://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


-- 
http://www.geeklog.net/
http://geeklog.info/

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



Re: [PHP-DEV] Bug? Raw POST data in PHP 5.2.2, take two

2007-05-04 Thread Ilia Alshanetsky
Is your always_populate_raw_post_data enabled? Also, have you tried  
accessing the data from php://input ?



On 4-May-07, at 4:18 PM, Dirk Haun wrote:

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 /
bNotice/b:  Undefined index:  HTTP_RAW_POST_DATA in b/usr/local/
apache/vhost/geeklog/public_html/receive.php/b on line b5/ 
bbr /


---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
methodNamepingback.ping/methodName
params
param
valuestringhttp://www.example.com//string/value
/param
param
valuestringhttp://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


--
http://www.geeklog.net/
http://geeklog.info/

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



Ilia Alshanetsky

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



Re: [PHP-DEV] Bug? Raw POST data in PHP 5.2.2, take two

2007-05-04 Thread Dirk Haun
Ilia Alshanetsky wrote:

Is your always_populate_raw_post_data enabled?

Yes:

; Always populate the $HTTP_RAW_POST_DATA variable.
always_populate_raw_post_data = On

As I already said: On or Off doesn't seem to make a difference.


Also, have you tried  
accessing the data from php://input ?

I have to admit that I wouldn't know how to do that - never used php://
input before. It also wouldn't help with the PEAR::XML_RPC package
(which we normally use on the receiving end).

bye, Dirk


-- 
http://www.geeklog.net/
http://geeklog.info/

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