Mat*_*hew 4 php forms api post
我有一个通过 POST 提交的表单,一旦提交表单,我就会捕获变量。
如何连接表单数据,然后将其发布到 url,然后重定向到感谢页面?
这不是确切的代码,我只是找不到任何正常的答案,而且我确信有不止一种方法可以做到这一点。只是想找出最简单的方法。
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");
}
Run Code Online (Sandbox Code Playgroud)
编辑:
这是实际答案/工作代码:
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);
Run Code Online (Sandbox Code Playgroud)
(PHP 5, PHP 7) http_build_query — 生成 URL 编码的查询字符串
例子:
<?php
$data = array(
'foo' => 'bar',
'baz' => 'boom',
'cow' => 'milk',
'php' => 'hypertext processor'
);
echo http_build_query($data) . "\n";
echo http_build_query($data, '', '&');
?>
Run Code Online (Sandbox Code Playgroud)
上面的例子将输出:
foo=bar&baz=boom&cow=milk&php=hypertext+processor
foo=bar&baz=boom&cow=milk&php=hypertext+processor
Run Code Online (Sandbox Code Playgroud)
其余的取决于您的流程逻辑。要发布到另一个脚本:
从这个答案:
// where are we posting to?
$url = 'http://foo.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)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
26634 次 |
| 最近记录: |