I have a form that submits via POST and I capture the variables once the form is submitted.
How can I concatenate the form data and then POST it to the url then re-direct to the thank you page?
This is not the exact code, I just can't find any normal answers, and I'm sure there is more than one way to do this. Just trying to figure out the simplest way possible.
if(isset($_POST['submit'])){
$var1 = $_POST['var1'];
$var2 = $_POST['var2'];
$url = 'https://api.this.com/foo/bar?token=IHAVETOKEN&foo=$Var1&bar=$var2'
post_request_to($url);
header("Location: thankyou.php");
}
EDIT:
HERE IS THE ACTUAL ANSWER/WORKING CODE:
if(isset($_GET['submit'])){
$firstName = $_GET['firstname'];
$lastName = $_GET['lastname'];
$email = $_GET['email'];
$password = $_GET['password'];
$phone = $_GET['phone'];
}
$data = array(
'token' => 'sadfhjka;sdfhj;asdfjh;hadfshj',
'firstName' => $firstName,
'lastName' => $lastName,
'email' => $email,
'password' => $password,
'phone' => $phone
);
$postvars = http_build_query($data) . "\n";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://api.com/foo/bar?');
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $postvars);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$server_output = curl_exec ($ch);
curl_close ($ch);
(PHP 5, PHP 7) http_build_query — Generate URL-encoded query string
Example:
<?php
$data = array(
'foo' => 'bar',
'baz' => 'boom',
'cow' => 'milk',
'php' => 'hypertext processor'
);
echo http_build_query($data) . "\n";
echo http_build_query($data, '', '&');
?>
The above example will output:
foo=bar&baz=boom&cow=milk&php=hypertext+processor
foo=bar&baz=boom&cow=milk&php=hypertext+processor
The rest depends on your flow logic. To post to another script:
From this answer:
Possibly the easiest way to make PHP perform a POST request is to use cURL, either as an extension or simply shelling out to another process. Here's a post sample:
// where are we posting to?
$url = 'http://example.com/script.php';
// what post fields?
$fields = array(
'field1' => $field1,
'field2' => $field2,
);
// build the urlencoded data
$postvars = http_build_query($fields);
// open connection
$ch = curl_init();
// set the url, number of POST vars, POST data
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, count($fields));
curl_setopt($ch, CURLOPT_POSTFIELDS, $postvars);
// execute post
$result = curl_exec($ch);
// close connection
curl_close($ch)