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

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

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
27
#1
$params = array( 'foo' => 'bar' ); ... curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($params)); ...
lutskboy
На сайте с 22.11.2013
Offline
104
#2
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($postData));

$postData ваш массив

lutskboy
На сайте с 22.11.2013
Offline
104
#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
196
#4
developerlv :
Но в итоге форма ничего не видит. Как правильно передать данные?

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

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

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

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

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

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


developerlv #:
А он не один у меня?
ХЗ. Показали-то только один!
SeVlad
На сайте с 03.11.2008
Offline
1462
#7
miketomlin #:
Неправильный у вас ник. Девелоперу этого достаточно:
А мб в нике не 2, а 3 слова ;)
Делаю хорошие сайты хорошим людям. Предпочтение коммерческим направлениям. Топики помощи с ⓌordPress (https://searchengines.guru/ru/forum/1032910 ) и основы безопасности сайтов ( https://searchengines.guru/ru/forum/774117 ). *** Помощь\консультации в топиках форума - БЕСПЛАТНО. Платные услуги ( https://wp.me/P3YHjQ-3 ) - с бюджетом от 150$ ***

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