Have you cecked before if this is still treu for the current
    RC release from http://www.php.net/~zeev/php-4.1.0RC3.tar.gz

    - Markus

On Sat, Nov 24, 2001 at 01:42:40PM -0000, [EMAIL PROTECTED] wrote : 
> From:             [EMAIL PROTECTED]
> Operating system: All
> PHP version:      4.0.6
> PHP Bug Type:     Feature/Change Request
> Bug description:  HTTP_RAW_POST_DATA not set for known content types - fix supplied
> 
> The global variable HTTP_RAW_POST_VARS does not get set unless the
> content-type is unknown to php. This causes problems when a remote server
> POSTs information which has 
> 
> Content-type:application/x-www-form-urlencoded
> 
> but the server actually posts something different. 
> 
> Using ASP or perl, one can simply open stdin to get the raw data, however
> this facility does not exist in PHP.
> 
> Applications I know of which POST this kind of data include a number of
> SOAP servers and some credit-card authorizers, notably BarclaysEPDQ. In
> order to interface to these servers some perl glue is necessary. I know
> that this issue affects quite a few people - just search for
> HTTP_RAW_POST_DATA on Google.
> 
> The fix is simple - a short patch to main/php_variables.c.
> 
> The diff over the code in the 4.0.6 distribution is as follows, complete
> code for the affected function (php_std_post_handler) is also given.
> ======== diff ============
> 
> 197d196
> <         char *data;
> 202,207d200
> <         /* Make sure we always set HTTP_RAW_POST_DATA */
> <       sapi_read_standard_form_data(SLS_C);
> <         data =
> estrndup(SG(request_info).post_data,SG(request_info).post_data_length);
> <         SET_VAR_STRINGL("HTTP_RAW_POST_DATA", data,
> SG(request_info).post_data_length);
> <
> <
> 
> 
> ========= end diff ========
> 
> ====== function ==========
> SAPI_POST_HANDLER_FUNC(php_std_post_handler)
> {
>         char *var, *val;
>         char *strtok_buf = NULL;
>         char *data;
>         zval *array_ptr = (zval *) arg;
>         ELS_FETCH();
>         PLS_FETCH();
> 
>         /* Make sure we always set HTTP_RAW_POST_DATA */
>         sapi_read_standard_form_data(SLS_C);
>         data =
> estrndup(SG(request_info).post_data,SG(request_info).post_data_length);
>         SET_VAR_STRINGL("HTTP_RAW_POST_DATA", data,
> SG(request_info).post_data_length);
> 
> 
>         var = php_strtok_r(SG(request_info).post_data, "&", &strtok_buf);
> 
>         while (var) {
>                 val = strchr(var, '=');
>                 if (val) { /* have a value */
>                         int val_len;
> 
>                         *val++ = '\0';
>                         php_url_decode(var, strlen(var));
>                         val_len = php_url_decode(val, strlen(val));
>                         php_register_variable_safe(var, val, val_len,
> array_ptr ELS_CC PLS_CC);
>                 }
>                 var = php_strtok_r(NULL, "&", &strtok_buf);
>         }
> }
> 
> ========= end function ============
> -- 
> Edit bug report at: http://bugs.php.net/?id=14207&edit=1
> 
> 
> -- 
> PHP Development Mailing List <http://www.php.net/>
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
> To contact the list administrators, e-mail: [EMAIL PROTECTED]

-- 
Please always Cc to me when replying to me on the lists.

-- 
PHP Development Mailing List <http://www.php.net/>
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]

Reply via email to