CURL и передача POST запроса.

InventOR^ULG

Новичок
CURL и передача POST запроса.

не могу сообразить куда воткнуть передачу POST текста запроса.

пример:
PHP:
 $RequestN = _DateID();
  global $wmconst__shop_wmid;

  // формирование строки для подписи
  $PlanStr = "$WMID$RequestN";
  // Формирование подписи
  $SignStr = _GetSign($PlanStr);

  // формируем XML запрос
  $zapros  = "<w3s.request>\n";
  $zapros .= "<reqn>".$RequestN."</reqn>\n";
  $zapros .= "<wmid>".$wmconst__shop_wmid."</wmid>\n";
  $zapros .= "<sign>".$SignStr."</sign>\n";
  $zapros .= "<getpurses>\n";
  $zapros .= "  <wmid>".$WMID."</wmid>\n";
  $zapros .= "</getpurses>\n";
  $zapros .= "</w3s.request>";

  $url = "https://w3s.webmoney.ru/asp/XMLPurses.asp";

/// вот дальше я незнаю как мне прикрутить POST $zapros :(
  $ch = curl_init ($url);
  curl_setopt ($ch, CURLOPT_HEADER, 0);
  $fp = tmpfile();
  curl_setopt ($ch, CURLOPT_FILE, $fp);
  curl_exec($ch); 
  curl_close($ch);

  fseek($fp,0,SEEK_SET);
  $result = fgets($fp,1024);
  fclose($fp);
 

antonio

Moderator
Команда форума
curl_setopt ($ch, CURLOPT_POST, 1);
curl_setopt ($ch, CURLOPT_POSTFIELDS, "a=1&b=2");

P.S. Ман читать не умеешь или не хочешь!
 

InventOR^ULG

Новичок
не идет. мне нужно не переменные передать а именно кусок текста. причем насколько я понял из спецификации - его как переменную оформлять не надо :)
 

Alchemist

Guest
Может как-нибудь так можно...
PHP:
curl_setopt ($ch, CURLOPT_HEADER, 1);
curl_setopt ($ch, CURLOPT_HTTPHEADER, "Content-Type: multipart/form-data; boundary=---47d893b879");
$s="---47d893b879\r\n";
$s.="Content-Disposition: form-data; name=\"pic\"\r\n\r\n";
$f=fopen("picFileName", "rb");
$s.=fread($f, filesize("picFileName"));
curl_setopt ($ch, CURLOPT_POST, 1);
curl_setopt ($ch, CURLOPT_POSTFIELDS, $s);
Не знаю, может это полный бред... (Я себя проверить не могу)
А вообще там есть такие штуки как CURLOPT_PUT и CURLOPT_INFILE, но это уже не POST, а PUT.
 

InventOR^ULG

Новичок
да нет. POST прокатило. видимо хостинг просто глючил....
все заработало :)
 
Сверху