我需要将数据从一个表单发送到两个不同的位置。我之前使用简单的cURL脚本完成了此操作,但现在在我的测试中,我无法将其实际发布到我的辅助源。我正在使用PAW通过POST发送正确的信息。下面是我的cURL脚本。我已经看了太久了。
$url = 'https://vf267.infusionsoft.com/app/form/process/41f58953f72a770df094c4525be6fb6b';
$fields = array(
'inf_form_xid' => urlencode($_POST['inf_form_xid']),
'inf_form_name' => urlencode($_POST['inf_form_name']),
'infusionsoft_version' => urlencode($_POST['infusionsoft_version']),
'inf_field_Email' => urlencode($_POST['institution'])
);
//url-ify the data for the POST
foreach($fields as $key=>$value) { $fields_string .= $key.'='.$value.'&'; }
rtrim($fields_string, '&');
//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, $fields_string);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30);
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
//execute post
$result = curl_exec($ch);
return $result;
//close connection
curl_close($ch);
我传递了这些值/密钥对...这与我发布的Infusionsoft表格相关
inf_form_xid=41f58953f72a770df094c4525be6fb6b
inf_form_name=tester
infusionsoft_version=1.50.0.37
inf_field_Email=tester@tester.com
答案 0 :(得分:1)
/* manually setting the variables for testing */
$_POST['inf_form_xid'] = '41f58953f72a770df094c4525be6fb6b';
$_POST['inf_form_name'] = 'tester';
$_POST['infusionsoft_version'] = '1.50.0.37';
$_POST['institution'] = 'tester@tester.com';
$url = 'https://vf267.infusionsoft.com/app/form/process/41f58953f72a770df094c4525be6fb6b';
$fields = array(
'inf_form_xid' => $_POST['inf_form_xid'],
'inf_form_name' => $_POST['inf_form_name'],
'infusionsoft_version' => $_POST['infusionsoft_version'],
'inf_field_Email' => $_POST['institution']
);
//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, true);/* set as true rather than a number */
/* use `http_build_query` to construct data to send */
curl_setopt($ch,CURLOPT_POSTFIELDS, http_build_query( $fields ) );
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30);
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
//execute post
$result = curl_exec($ch);
//close connection
curl_close($ch);
/* shows the success page by the looks of things - a graphic and a message saying "Thanks Friend! We will contact you shortly." */
print_r( $result );
答案 1 :(得分:1)
也许是“回归”这个词?
你的(修改过的)脚本适用于我
<?php
$url = 'https://vf267.infusionsoft.com/app/form/process/41f58953f72a770df094c4525be6fb6b';
$fields = [
inf_form_xid => '41f58953f72a770df094c4525be6fb6b',
inf_form_name => 'tester',
infusionsoft_version => '1.50.0.37',
inf_field_Email => 'tester@tester.com'
];
//url-ify the data for the POST
foreach($fields as $key=>$value) { $fields_string .= $key.'='.$value.'&'; }
rtrim($fields_string, '&');
//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, $fields_string);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30);
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
//execute post
$result = curl_exec($ch);
var_export($result);
die('Finished');
return $result;
//close connection
curl_close($ch);
输出:
<link rel="shortcut icon" href="/slices/style/favicon.ico" type="image/x-icon"/>
<!-- Headers to prevent the caching of pages -->
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/>
<meta http-equiv="pragma" content="no-cache"/>
<meta http-equiv="cache-control" content="no-store"/>
<script type="text/javascript" src="/js/lightbox_js.jsp?b=1.50.0.37"></script>
<link rel="stylesheet" href="/css/lightbox_css.jsp?b=1.50.0.37" type="text/css" media="screen"/>
<script type="text/javascript">(function() {
var styleArray = [];
...
...