cURL not working with POST data

前端 未结 3 1411
感情败类
感情败类 2021-01-27 20:50

I am trying to debug this, but I\'ve had no luck. Am I sending the POST data correctly?

if (isset($_POST[\'chrisBox\'])) {

$curl = curl_init();
curl_setopt($cur         


        
相关标签:
3条回答
  • 2021-01-27 21:14
    $ex = curl_exec($process);
    if ($ex === false)
    {
        // throw new Exception('Curl error: ' . @curl_error($process));
        // this will give you more info
        var_dump(curl_error($process));
    }
    
    0 讨论(0)
  • 2021-01-27 21:19

    CURLOPT_POSTFILEDS requires an urlencoded string or an array as param. Read PHP Manual curl_setopt. Have changed your example, now it uses an urlencoded string.

    if (isset($_POST['chrisBox'])) {
    
        $curl = curl_init();
        curl_setopt($curl, CURLOPT_URL, "http://www.associates.com/send-email-orders.php");
        curl_setopt($curl, CURLOPT_POST, TRUE);
        curl_setopt($curl, CURLOPT_POSTFIELDS, 'chrisBox=' . urlencode($_POST['chrisBox']));
        curl_setopt($curl, CURLOPT_HEADER, FALSE);
        curl_setopt($curl, CURLOPT_RETURNTRANSFER, FALSE);
        curl_setopt($curl, CURLOPT_VERBOSE, TRUE);
        $ex = curl_exec($curl);
        echo 'email';
        $email = true;
    }
    
    0 讨论(0)
  • 2021-01-27 21:31

    The parameters sent in a $_POST request need to be in the form of -

    key=value&foo=bar
    

    You can use PHP's http-build-query function for this. It'll create a query string from an array.

    curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($_POST));
    

    If you only want to pass one parameter, you'll still need to wrap it in an array or object.

    $params = array(
      'stack'=>'overflow'
    );
    
    http_build_query($params);     // stack=overflow
    
    0 讨论(0)
提交回复
热议问题