Как передать такой формат в POST CURL?

D
На сайте с 20.02.2017
Offline
44
127
Есть сложная форма, которая в итоге отправляет на сервер такое поле:

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

[{"type":"phone","code":"+972","phone":"44255424"}]

Пробую передать ее через CURL в PHP, вот так:
curl_setopt($ch, CURLOPT_POSTFIELDS,'contacts=[{"type":"phone","code":"+972","phone":"44255424"}]');



Но в итоге форма ничего не видит. Как правильно передать данные?

Хелп плиз, куча времени убил, а толку нет( Спасибо!

Hitechrem
На сайте с 02.01.2018
Offline
37
#1
$params = array( 'foo' => 'bar' ); ... curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($params)); ...
lutskboy
На сайте с 22.11.2013
Offline
129
#2
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($postData));

$postData ваш массив

lutskboy
На сайте с 22.11.2013
Offline
129
#3

хотя наверно нет

https://gist.github.com/maxivak/18fcac476a2f4ea02e5f80b303811d5f тут глянь

PHP upload file with curl (multipart/form-data)
PHP upload file with curl (multipart/form-data)
  • gist.github.com
PHP upload file with curl (multipart/form-data). GitHub Gist: instantly share code, notes, and snippets.
M
На сайте с 04.12.2013
Offline
209
#4
developerlv :
Но в итоге форма ничего не видит. Как правильно передать данные?

Это отдельный POST-параметр contacts в формате multipart/form-data. В соответствии с описанием CURLOPT_POSTFIELDS для передачи POST-парметров (всех!!!) в этом формате их нужно передавать в ассоциативном массиве, в котором ключами являются имена параметров. Т.е. нужно так:

curl_setopt($ch, CURLOPT_POSTFIELDS, ['contacts'=>'[{"type":"phone","code":"+972","phone":"44255424"}]']);
при условии, что POST-параметр только один.
Хостинг FOZZY ( https://u75.ru/fozzy ) / Выслушаю предложения на домены ( https://u75.ru/domains-for-sale ) / Домены и скрипт для коротких ссылок ( https://u75.ru/domains-for-shortcuts )
D
На сайте с 20.02.2017
Offline
44
#5
miketomlin #:

Это отдельный POST-параметр contacts в формате multipart/form-data. В соответствии с описанием CURLOPT_POSTFIELDS для передачи POST-парметров (всех!!!) в этом формате их нужно передавать в ассоциативном массиве, в котором ключами являются имена параметров. Т.е. нужно так:

при условии, что POST-параметр только один.
А он не один у меня? Там несколько в итоге. Как сделать?
M
На сайте с 04.12.2013
Offline
209
#6

Неправильный у вас ник. Девелоперу этого достаточно:

miketomlin #:
для передачи POST-парметров (всех!!!) в этом формате их нужно передавать в ассоциативном массиве


developerlv #:
А он не один у меня?
ХЗ. Показали-то только один!
SeVlad
На сайте с 03.11.2008
Offline
1528
#7
miketomlin #:
Неправильный у вас ник. Девелоперу этого достаточно:
А мб в нике не 2, а 3 слова ;)
Делаю хорошие сайты хорошим людям. Предпочтение коммерческим направлениям. Связь со мной через http://wp.me/P3YHjQ-3.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий