Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Curl и multipart/form-data

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
likvidator
Отправлено: 04 Июня, 2015 - 18:54:53
Post Id


Посетитель


Покинул форум
Сообщений всего: 416
Дата рег-ции: Март 2012  


Помог: 4 раз(а)

[+]


Получаю данные из формы на сайте и теперь необходимо эту же форму отправить.. Все отлично,только вот enctype="multipart/form-data" жизнь портит... В форме только инпуты,чекбоксы и селекты... (@ нам не нужен и не поможет).
PHP:
скопировать код в буфер обмена
  1.  
  2. $curlpost=array(
  3.     'service' => 5,
  4.     'group' => 1,
  5.     'cartype' => 0,
  6.     'connecttype' => 'terminal',
  7.     'carfile' => 'vaz2109',
  8.     'colorfile' => 'dark-green',
  9.     'primary_queue' => 4,
  10.     'code' => 'р143',
  11.     'autonum' => 143,
  12.     'color' => 'темно-зеленый',
  13.     'brand' => 'ВАЗ',
  14.     'model' => 21093,
  15.     'carage' => 2004,
  16.     'lastname' => 'Шакир',
  17.     'firstname' => 'Асхабов',
  18.     'middlename' => 'Ш',
  19.     'age' => 1985,
  20.     'phone' => 89886078232,
  21.     'note' => ,
  22.     'can_contrs' => 'on',
  23.     'active' => 'on',
  24.     'priority' => 0,
  25.     'block_reason' => '',
  26.     'queues' => 'on',
  27.     'workstart' =>'' ,
  28.     'workend' =>'' ,
  29.     'permit_number' => '',
  30.     'has_web_access' => '',
  31.     'can_see_dst' => '',
  32.     'username' => 1431,
  33.     'password' => '',
  34.     '_save' => 'Сохранить'
  35. );
  36.         $ch = curl_init();  
  37.         curl_setopt($ch, CURLOPT_URL,"http://".$this->domain."/cars/edit/$id/");
  38.         curl_setopt($ch, CURLOPT_VERBOSE, true);
  39.         curl_setopt($ch, CURLOPT_HTTPHEADER, $hd);
  40.               curl_setopt($ch,CURLOPT_ENCODING , "gzip");
  41.               curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
  42.         curl_setopt($ch,CURLOPT_NOBODY,1);
  43.               curl_setopt($ch,CURLOPT_HEADER,1);
  44.               curl_setopt($ch, CURLOPT_TIMEOUT,60);
  45.     curl_setopt($ch, CURLOPT_POST,1);
  46.     //curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($curlpost));
  47.     curl_setopt($ch, CURLOPT_POSTFIELDS, $curlpost);
  48.         $result = curl_exec($ch);
  49.                 echo "<br>cURL error number:" . curl_errno($ch) . " <br>";
  50.     echo "<br>cURL error:" . curl_error($ch) . " <br>";
  51.         curl_close($ch);
  52.  

Если без http_build_query,то получаю "cURL error:failed creating formpost data"
Если с,то отправляется просто пост и данные не сохраняются...
 
 Top
Panoptik
Отправлено: 04 Июня, 2015 - 22:06:45
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2493
Дата рег-ции: Нояб. 2011  
Откуда: Одесса, Украина


Помог: 131 раз(а)




а вы уверенны что проблема в мультипарт кодировке?
попробуйте на том сайте где отпрвляется форма убрать атрибут энктайп и отправить как ввв-урл-энкодед (оно по умолчанию)

и попробуйте методом тыка убирать ненужные поля и найти то в чем ошибка

еще проблема может быть в URLOPT_ENCODING gzip. попробуйте убрать этот параметр и вообще старайтесь указывать минимально необходимое количество опций.
короче локализируйте проблему, а то слишком много обстоятельств


-----
Just do it
 
 Top
likvidator
Отправлено: 04 Июня, 2015 - 23:00:51
Post Id


Посетитель


Покинул форум
Сообщений всего: 416
Дата рег-ции: Март 2012  


Помог: 4 раз(а)

[+]


Panoptik пишет:
еще проблема может быть в URLOPT_ENCODING gzi

нет
Panoptik пишет:
а вы уверенны что проблема в мультипарт кодировке?
попробуйте на том сайте где отпрвляется форма убрать атрибут энктайп и отправить как ввв-урл-энкодед (оно по умолчанию)

100%. Отправляю без энктайпа сейв не происходит...
Меня еще смущает
likvidator пишет:
cURL error:failed creating formpost data
с чем это связано?
 
 Top
Panoptik
Отправлено: 04 Июня, 2015 - 23:27:08
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2493
Дата рег-ции: Нояб. 2011  
Откуда: Одесса, Украина


Помог: 131 раз(а)




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

Спойлер (Отобразить)


ну и сам запрос выполнить типа так

PHP:
скопировать код в буфер обмена
  1.  
  2. $curl = new CurlRequest([
  3.     'url' => 'http://'.$this->domain',
  4. ]);
  5.  
  6. $result = $curl->sendRequest("/cars/edit/$id/", 'post',  [
  7.     'multipart' => true,
  8.     CURLOPT_ENCODING => 'gzip',
  9. ], $curlpost);
  10.  

(Добавление)
https://ru.wikipedia.org/wiki/Multipart/form-data

(Отредактировано автором: 04 Июня, 2015 - 23:36:10)



-----
Just do it
 
 Top
likvidator
Отправлено: 05 Июня, 2015 - 15:08:35
Post Id


Посетитель


Покинул форум
Сообщений всего: 416
Дата рег-ции: Март 2012  


Помог: 4 раз(а)

[+]


Panoptik пишет:
https://ru.wikipedia.org/wiki/Multipart/form-data

решает)) я,дурашка, просто данные не в последовательном порядке заносил в массив..
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB