-1

I currently send my form data as normal Post. I would like to send it as XML .

Current format : name=max Format i need : max

Here is my current code :

// This is the data to POST to the form. The KEY of the array is the name of the field. The value is the value posted.
$data_to_post = array();
$data_to_post['title'] = '$title';
$data_to_post['first_name'] = '$first_name';
$data_to_post['surname'] = '$surname';
$data_to_post['email'] = '$email';
$data_to_post['dob'] = '$dob';

// Initialize cURL
$curl = curl_init();

// Set the options
curl_setopt($curl,CURLOPT_URL, $form_url);

// This sets the number of fields to post
curl_setopt($curl,CURLOPT_POST, sizeof($data_to_post));

// This is the fields to post in the form of an array.
curl_setopt($curl,CURLOPT_POSTFIELDS, $data_to_post);

//execute the post
$result = curl_exec($curl);

//close the connection
curl_close($curl);

?>
MatHatrik
  • 762
  • 1
  • 6
  • 16

2 Answers2

1

First you have to convert your array into xml data. Reffer link for convert array into xml array to xml conversion

Now you have to send data using following code

$input_xml = ''; //XML Data 
$url=''; // URL


    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);

    curl_setopt($ch, CURLOPT_POSTFIELDS,
                "xmlRequest=" . $input_xml);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 300);
    $data = curl_exec($ch);
    curl_close($ch);
Community
  • 1
  • 1
Avinash
  • 72
  • 1
  • 8
0

You can't send a XML. You must send your XML string in a POST var

$data_to_post = array();
$data_to_post['xml'] = '<?xml version="1.0"?>
<data_to_post>
<title><![CDATA['.$title']]><title>
<first_name><![CDATA['.$first_name']]><first_name>
<surname><![CDATA['.$surname']]><surname>
<email><![CDATA['.$email']]><email>
<dob><![CDATA['.$dob']]><dob>
</data_to_post>'
Avara
  • 1,753
  • 2
  • 17
  • 24