PDA

Просмотр полной версии : php, curl и multipart/form-data


Дикс
21.08.2009, 11:45
подскажите, как правильно отправлять курлом такое:



POST /a-myljpost/ HTTP/1.1
Host: ***.ru

Content-Type: multipart/form-data; boundary=---------------------------281452328116827
Content-Length: 1486
-----------------------------281452328116827
Content-Disposition: form-data; name="tagcount"

0
-----------------------------281452328116827
Content-Disposition: form-data; name="ffont"

0
-----------------------------281452328116827
Content-Disposition: form-data; name="fcolor"

0
-----------------------------281452328116827
Content-Disposition: form-data; name="fsize"

0
-----------------------------281452328116827
Content-Disposition: form-data; name="d"

1
-----------------------------281452328116827
Content-Disposition: form-data; name="a"

myljpost
-----------------------------281452328116827
Content-Disposition: form-data; name="aa"

new
-----------------------------281452328116827
Content-Disposition: form-data; name="s"


-----------------------------281452328116827
Content-Disposition: form-data; name="message"

sfdfdsfdsfsdf
-----------------------------281452328116827
Content-Disposition: form-data; name="addfile"; filename=""
Content-Type: application/octet-stream


-----------------------------281452328116827
Content-Disposition: form-data; name="rub"

0
-----------------------------281452328116827
Content-Disposition: form-data; name="vstat"

0
-----------------------------281452328116827
Content-Disposition: form-data; name="music"


-----------------------------281452328116827
Content-Disposition: form-data; name="Submit"

Отправить
-----------------------------281452328116827--



пробовал в POSTFIELDS оптравлять массив из этих полей - результата нет

Дикс
21.08.2009, 11:52
на антикапче есть пример - посылающий такие заголовки без курла
и с курлом - посылающий обычный массив
пробовал массив - никакого толку

b3
21.08.2009, 12:01
Какойто кривой у тебя мультипарт, файла нет)) 'addfile' => '',

<?php
$data = array(
'tagcount' => '0',
'ffont' => '0',
'fcolor' => '0',
'fsize' => '0',
'd' => '1',
'a' => 'myljpost',
'aa' => 'new',
's' => '',
'message' => 'sfdfdsfdsfsdf',
'addfile' => '',
'rub' => '0',
'vstat' => '0',
'music' => '',
'Submit' => 'ОтпÑ?авить',
);

$ch = curl_init('url');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_USERAGENT, 'Opera/9.62 (Windows NT 6.0; U; ru) Presto/2.1.1');
$res = curl_exec($ch);
curl_close($ch);
?>

Дикс
21.08.2009, 12:13
да, там и не должен быть файл
это livehttpheaders в FF дописал туда

Doom123
21.08.2009, 22:49
для такис случаев советую использовать tamper data

https://addons.mozilla.org/ru/firefox/addon/966

в 100 раз удобнее =)

Gray_f0x
22.08.2009, 14:27
через массив

Gray_f0x
22.08.2009, 14:29
$data=array(
"parametr1"=>"1"
"paramert2"=>"2"
....
);
curl_setopt($curlses,CURLOPT_POSTFIELDS,$data);