【问题标题】:How to post html multipart form data using PHP cURL如何使用 PHP cURL 发布 html 多部分表单数据
【发布时间】:2012-05-07 09:49:17
【问题描述】:

请帮助我使用 PHP cURL 发布以下多部分表单数据

url = "http://smssheep.com/sendsms.php";
reffer="http://smssheep.com/";

POSTDATA =-----------------------------187161971819895
Content-Disposition: form-data; name="country"

0091
-----------------------------187161971819895
Content-Disposition: form-data; name="no"

00918714349616
-----------------------------187161971819895
Content-Disposition: form-data; name="msg"

hggggggggggggggggggggggggggggggggggggggggg
-----------------------------187161971819895
Content-Disposition: form-data; name="x_form_secret"

bqu9hv488bxu
-----------------------------187161971819895
Content-Disposition: form-data; name="saveForm"

SEND
-----------------------------187161971819895
Content-Disposition: form-data; name="comment"


-----------------------------187161971819895
Content-Disposition: form-data; name="idstamp"

Ds11xxs27YzNm/r/vf I rmQbz2TS1yaMNXeuHD6ozI=
-----------------------------187161971819895--

任何帮助都会有很大帮助。

【问题讨论】:

  • 它必须是多部分的吗? multipart 或 application/x-www-form-urlencoded 应该以相同的方式工作。
  • 请看here

标签: php html post curl


【解决方案1】:

它的工作原理与explained in the PHP manual

$data = 'url = "http://smssheep.com/sendsms.php";
reffer="http://smssheep.com/";

POSTDATA =-----------------------------187161971819895
Content-Disposition: form-data; name="country"

...

Ds11xxs27YzNm/r/vf I rmQbz2TS1yaMNXeuHD6ozI=
-----------------------------187161971819895--'

curl_setopt($ch, CURLOPT_POSTFIELDS, $data);

【讨论】:

  • 此示例不完整/错误,因为您必须将哈希数组传递给 CURLOPT_POSTFIELDS 才能使其成为多部分表单帖子
  • @DanielStenberg:不,如果您像本例中那样预先格式化,则没有必要。
【解决方案2】:

【讨论】:

    【解决方案3】:

    喜欢这个

    $url = "http://smssheep.com/sendsms.php";
    $reffer="http://smssheep.com/";
    $data = array(
            'country' => '0091',
            'no' => '00918714349616',
            'msg' => 'hggggggggggggggggggggggggggggggggggggggggg'       
            );
    
    
    $data2 = http_build_query($data);
    
    curl_setopt ($ch, CURLOPT_URL,$url); 
    curl_setopt ($ch, CURLOPT_POST, 1); 
    curl_setopt ($ch, CURLOPT_POSTFIELDS, $data2); 
    curl_setopt ($ch, CURLOPT_REFERER, $reffer);         
    

    注意:数组中必须是所有post数据。

    【讨论】:

      猜你喜欢
      • 2022-11-11
      • 2013-04-12
      • 1970-01-01
      • 1970-01-01
      • 2018-03-29
      • 2016-05-13
      • 1970-01-01
      • 2015-10-31
      相关资源
      最近更新 更多