View Full Version : CURL POSTING multipart/form-data problem

10-16-2012, 10:37 PM
Hello ,

First happy to join here its my first time

iam using curl to post data type of it

Content-Type: multipart/form-data; boundary=---------------------------25550903729072

Content-Disposition: form-data; name="textarea_21234"

"firstdata" <iamherehihowru>"
Content-Disposition: form-data; name="name"



i can post without any issues just the problem that there is missing special characters <> also

i can encode the data before posting it - but the problem that it will be shown as encoded - and i cant decode it because i dont own the other side - its posting to other place

Here is code :
$link = "www.site.com"

$datatopost = array (

'textarea_21234' => "firstdata" <iamherehihowru>",
'name' => "samy",

curl_setopt($c, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 6.1; rv:2.2) Gecko/20110201");
curl_setopt($c, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($c, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($c, CURLOPT_TIMEOUT,15);
curl_setopt ($c, CURLOPT_POST, true);
curl_setopt($c, CURLOPT_POSTFIELDS, $datatopost);
curl_setopt($c, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($c, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($c, CURLOPT_CONNECTTIMEOUT ,60);
curl_setopt($c, CURLOPT_TIMEOUT, 60);
curl_setopt($c, CURLOPT_HEADER, 0);

everything is good and able to post but when i check the textarea which my data should go to it i see it show this only


and <iamherehihowru> total disapeared due to <> - problem that if i used urlencode as example it will be like this %3Ciamherehihowru%3E and this i dont want - i want it be shown as <> in the other side inside Textarea

Here also Request Header

User-Agent: Mozilla/5.0 (Windows NT 5.1; rv:5.0) Gecko/20100101 Firefox/5.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip, deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Connection: keep-alive
Content-Type: multipart/form-data; boundary=---------------------------3303192328350
Content-Length: 2836


Response Header

HTTP/1.1 200 OK
Date: Tue, 16 Oct 2012 20:07:05 GMT
Vary: Accept-Encoding
Content-Type: text/html; charset=utf-8
Content-Encoding: gzip
Cache-Control: private
Age: 0
Transfer-Encoding: chunked
Connection: keep-alive

hope there is any solution

10-16-2012, 11:32 PM
You might want to urlencode the < and > characters and see if that works.

As for your boundary, I thought that was used for email not http / forms? :confused:

10-16-2012, 11:56 PM
Nope, boundaries can be viewed in any multipart message, so the form would be the same. Typically we don't need to worry about them from our level though as we receive the data parsed by the server who takes care of the messages for us (and other technologies like curl).
< and > are probably fine in the string itself; problem is they are not in the string. The only reason this doesn't throw a parser error is that it would see those as < and > comparisons to a constant. So you need to escape that " in the string: 'textarea_21234' => "firstdata\" <iamherehihowru>",, and then the < and > would be determined by the receiver (I'd expect they'd be fine).