Over a million developers have joined DZone.
{{announcement.body}}
{{announcement.title}}

Execute a HTTP POST Using PHP CURL

DZone's Guide to

Execute a HTTP POST Using PHP CURL

A customer recently brought to me a unique challenge. My customer wants information request form data to be collected in a database.

· Database Zone ·
Free Resource

RavenDB vs MongoDB: Which is Better? This White Paper compares the two leading NoSQL Document Databases on 9 features to find out which is the best solution for your next project.  

A customer recently brought to me a unique challenge. My customer wants information request form data to be collected in a database. Nothing new, right? Well, there's a hurdle — the information isn't going to be saved on the localhost database — it needs to be stored in a remote database that I cannot connect directly to.

I thought about all of the possible solutions for solving this challenge and settled on this flow:

  1. User will submit the form, as usual.
  2. In the form processing PHP, I use CURL to execute a POST transmission to a PHP script on the customer's server.
  3. The remote script would do a MySQL INSERT query into the customer's private database.

This solution worked quite well so I thought I'd share it with you. Here's how you execute a POST using the PHP CURL library.

//extract data from the postextract($_POST);//set POST variables$url = 'http://domain.com/get-post.php';$fields = array('lname'=>urlencode($last_name),'fname'=>urlencode($first_name),'title'=>urlencode($title),'company'=>urlencode($institution),'age'=>urlencode($age),'email'=>urlencode($email),'phone'=>urlencode($phone));//url-ify the data for the POSTforeach($fields as $key=>$value) { $fields_string .= $key.'='.$value.'&'; }rtrim($fields_string,'&');//open connection$ch = curl_init();//set the url, number of POST vars, POST datacurl_setopt($ch,CURLOPT_URL,$url);curl_setopt($ch,CURLOPT_POST,count($fields));curl_setopt($ch,CURLOPT_POSTFIELDS,$fields_string);//execute post$result = curl_exec($ch);//close connectioncurl_close($ch);

How would you have solved this problem?

Get comfortable using NoSQL in a free, self-directed learning course provided by RavenDB. Learn to create fully-functional real-world programs on NoSQL Databases. Register today.

Topics:
php ,curl ,post ,database

Published at DZone with permission of

Opinions expressed by DZone contributors are their own.

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}