Ole Media
Ole Media

Reputation: 1642

How do I submit POST data using PHP and cURL?

Can anyone help on how can I do to send the data from a form (POST) to an URL using PHP and cURL?

Using cURL, all I want to accomplish is send the data, I don't want to be redirected nor get any sort of output (HTML nor TEXT) just submit the data.

It would be nice to know if the data has been submitted successfully or not to handle error or redirection.

Additional Info. The reason I think I'm getting redirected is because once I execute the cURL, the destination page, which is a third party website, have a redirect into place confirming the user that their data has been received, and for some reason, when I send my data using cURL their redirection it effects my page, therefore my page it also redirects to their confirmation site.

Thank you all.

Sample Code:

$sub_req_url ="http://domain.com/util/request";
$ch = curl_init($sub_req_url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1 );
curl_setopt($ch, CURLOPT_POSTFIELDS,  "id=64&session=1&k=B0EA8835E&firstname=Name&lastname=Lastname&company=Company%20Name&[email protected]&work_phone=123-456-7890");
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_POST, 1);

$resp = curl_exec($ch);
curl_close($ch);

I edit this post to show an example of what I'm using. I should posted the code in first place.

Upvotes: 5

Views: 27242

Answers (2)

hakre
hakre

Reputation: 198204

Can anyone help on how can I do to send the data from a form (POST) to an URL using PHP and cURL?

Please search the site and/or post your code how you do it. Looks like that doing the actual POST request is not your concrete problem. In case it is, take a look at this related question: Passing $_POST values with cURL and php curl: i need a simple post request and retrival of page example

Using cURL, all I want to accomplish is send the data, I don't want to be redirected nor get any sort of output (HTML nor TEXT) just submit the data.

Assuming $ch is your curl handle:

curl_setopt($ch, CURLOPT_FOLLOWLOCATION, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, false);

The meaning of the options are described on the PHP manual page. Then do your curl_exec and check the return value if the request was successfull or not.

A probably related question for that part is: Make curl follow redirects?

Upvotes: 0

horte
horte

Reputation: 403

function post($requestJson) {

    $postUrl = $this->endpoint."?access_token=".$this->token;

    //Get length of post
    $postlength = strlen($requestJson);

    //open connection
    $ch = curl_init();

    //set the url, number of POST vars, POST data
    curl_setopt($ch,CURLOPT_URL,$postUrl);
    curl_setopt($ch,CURLOPT_POST,$postlength);
    curl_setopt($ch,CURLOPT_POSTFIELDS,$requestJson);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

    $response = curl_exec($ch);

    //close connection
    curl_close($ch);

    return $response;
}

Upvotes: 7

Related Questions