#22338 [Fbk->Opn]: XML-RPC classes rely on $HTTP_RAW_POST_DATA
| From: | stuart at gnqs dot org | Date: | Sun, 27 Apr 2003 09:20:49 +0000 |
| Subject: | #22338 [Fbk->Opn]: XML-RPC classes rely on $HTTP_RAW_POST_DATA | ||
| References: | 1 | Groups: | php.pear.dev |
| Request: | Send a blank email to pear-dev+get-15592@lists.php.net to get a copy of this message | ||
ID: 22338
User updated by: stuart at gnqs dot org
Reported By: stuart at gnqs dot org
-Status: Feedback
+Status: Open
Bug Type: PEAR related
Operating System: Windows XP
PHP Version: 4.3.0
New Comment:
Hi Philip,
A simple one-liner proves that $HTTP_RAW_POST_DATA doesn't exist when
register_globals=off
<?php
echo $HTTP_RAW_POST_DATA
?>
On my PHP installation, that generates the error:
Notice: Undefined variable: HTTP_RAW_POST_DATA in
c:\devel\htdocs\test.php on line 3
I'd never heard of a 'always_populate_raw_post_data' directive.
Wouldn't it be better to make the code work without having to set
specific directives in php.ini files (not everyone has permissions to
do this, y'know)? If you use the php://input stream to get the data
instead, this will work in every installation.
Best regards,
Stu
--
Previous Comments:
------------------------------------------------------------------------
[2003-04-26 18:21:01] philip@php.net
Actually, this variable is not affected by register_globals, it doesn't
live in any superglobal. It's its own variable.
AFAICT its created when either an unrecognized mime type is provided
and/or the php directive always_populate_raw_post_data = on.
I tried to grasp it once but gave up, here are the related threads:
http://marc.theaimsgroup.com/?l=php-dev&m=103688014620968
http://marc.theaimsgroup.com/?l=php-dev&m=103709898507271
Maybe someone with a better understanding of HTTP can make sense of all
this, sorry to get a little offtopic.
------------------------------------------------------------------------
[2003-02-20 15:19:23] stuart at gnqs dot org
Hi,
Just been looking at the XML-RPC classes in PEAR. Granted, I haven't
tried running the code, but from inspection it appears to rely on
$HTTP_RAW_POST_DATA. That particular variable doesn't exist if
register_globals is set to 'off'.
The php://input stream has been around since PHP 3.x (according to the
manual), and might be a more portable way of handling this. Just
tested this under PHP 4.3.0 with register_globals off, and (as
expected) it worked fine.
Do any other classes in PEAR rely on $HTTP_RAW_POST_DATA?
Best regards,
Stu
--
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=22338&edit=1