Saturday, February 19, 2011

How to make a form post request in PHP using CURL

You can do form post by using CURL in PHP.

As stated below function do_post_request(), you only have 2 parameters to pass on which is $post_url and $post_data. The $post_url is the form action URL where to post the data and the $post_data are the input parameters or data to be posted in a form.

For the $post_data, parameters are delimited by ampersand "&" like query string. Ex. username=...&password=...

This is very simple but very powerful which can really help you doing a back-end processing.

Please see below for the sample POST request.

<?

$post_url = 'http://www.example.com/post-here.php';
$post_data = 'username=myusername&password=mypassword';

do_post_request($post_url, $post_data);

function do_post_request($post_url, $post_data)
{
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, "$post_url");
        curl_setopt($ch, CURLOPT_POSTFIELDS, "$post_data");
        curl_setopt($ch, CURLOPT_POST, 1);
        curl_setopt($ch, CURLOPT_HEADER, 0);
        curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
        curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.3) Gecko/20070309 Firefox/2.0.0.3");
        $response = curl_exec($ch);

        return $response;
}

?>

4 comments: