Bug #17963 Updated: multipart/form-data post error

From: Date: Wed, 26 Jun 2002 08:23:37 +0000
Subject: Bug #17963 Updated: multipart/form-data post error
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-12111@lists.php.net to get a copy of this message
 ID:               17963
 Updated by:       daniel@haxx.se
 Reported By:      nvqtq@naver.com
 Status:           Open
 Bug Type:         cURL related
 Operating System: all
 PHP Version:      4.2.1
 New Comment:

Allow me to offer my wild assumptions and guesses, as posted previously
to the curl-and-php mailing list:

(http://curl.haxx.se/mail/curlphp-2002-06/0035.html)

Could it be that the string isn't properly zero terminated when the
PHP/CURL module extracts the PHP string using

  zend_hash_get_current_key_ex(postfields, &string_key,
&string_key_len, &num_key, 0, NULL);

followed by

  error = curl_formadd(&first, &last,
                        CURLFORM_COPYNAME, string_key,
                        CURLFORM_PTRCONTENTS, postval,
                        CURLFORM_CONTENTSLENGTH, Z_STRLEN_PP(current),
                        CURLFORM_END);

The CURLFORM_COPYNAME option requires a zero terminated string, which
this 'string_key' perhaps isn't?

You could try to add

             CURLFORM_NAMELENGTH, string_key_len,

Which then would take away the need for the zero termination.

I'm not a PHP hacker.


Previous Comments:
------------------------------------------------------------------------

[2002-06-25 10:06:08] nvqtq@naver.com

1

------------------------------------------------------------------------

[2002-06-25 04:32:53] nvqtq@naver.com

Hello.
Why is the result of this program like the this?
What there is the fault.
Probably there are we like the bug.
The postingfieldname does not know why we are changed in this way.
Inform the invalid sounding-line please.

-------------------------------------------------------------------------------
------------------------------    php source  
--------------------------------

<?
$post['mode'] = 'result';
$post['val1'] = 'value1';
$post['val2'] = 'value2';
$post['val3'] = 'value3';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'http://test.com/test.php');
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_HEADER, 1 );
curl_setopt($ch, CURLOPT_VERBOSE, 1 );
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 5.0;
Windows 98; DigExt)");
curl_setopt($ch, CURLOPT_POSTFIELDS, $post );
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$result = curl_exec($ch);
echo "$result";
curl_close($ch);
?>

-------------------------------------------------------------------------------
------------------    network snipping result    
-----------------------------


POST /test.php HTTP/1.1
User-Agent: Mozilla/4.0 (compatible; MSIE 5.0; Windows 98; DigExt)
Host: test.com
Pragma: no-cache
Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, */*
Content-Length: 417
Expect: 100-continue
Content-Type: multipart/form-data;
boundary=curlgyo1xC0h80m1EP5OD3RQcSQqRqk

--curlgyo1xC0h80m1EP5OD3RQcSQqRqk
Content-Disposition: form-data; name="modeýýýý1" //<!---The
postingfieldname does not know why we are changed in this way.-->

result
--curlgyo1xC0h80m1EP5OD3RQcSQqRqk
Content-Disposition: form-data; name="val1ýýýý1" //<!---The
postingfieldname does not know why we are changed in this way.-->

value1
--curlgyo1xC0h80m1EP5OD3RQcSQqRqk
Content-Disposition: form-data; name="val2ýýýý1" //<!---The
postingfieldname does not know why we are changed in this way.-->

value2
--curlgyo1xC0h80m1EP5OD3RQcSQqRqk
Content-Disposition: form-data; name="val3ýýýý1" //<!---The
postingfieldname does not know why we are changed in this way.-->

value3
--curlgyo1xC0h80m1EP5OD3RQcSQqRqk--


------------------------------------------------------------------------


-- 
Edit this bug report at http://bugs.php.net/?id=17963&edit=1



Thread (5 messages)

« previous php.bugs (#12111) next »