[英]Using cURL to POST form to two places
昨天我问了一个有关如何劫持MailChimp联系人表格以发送其他电子邮件(在满足某些条件时)的问题。
我编写了将action="...
从MailChimp URL更改为我自己的process_email.php
,其代码类似于以下代码:
extract($_POST);
$url = 'http://myMailchimpUser.us2.list-manage.com/subscribe/post';
$fields = array(
'u' => urlencode($u),
'id' => urlencode($id),
'group' => http_build_query ($group),
'MERGE1' => urlencode($MERGE1),
'MERGE2' => urlencode($MERGE2),
'MERGE3' => http_build_query($MERGE3),
'other_more_info_text' => urlencode($other_more_info_text),
'submit' => urlencode($submit)
);
foreach($fields as $key=>$value) { $fields_string .= $key.'='.$value.'&'; }
rtrim($fields_string, '&');
$ch = curl_init();
curl_setopt($ch,CURLOPT_URL, $url);
curl_setopt($ch,CURLOPT_POST, count($fields));
curl_setopt($ch,CURLOPT_POSTFIELDS, $fields_string);
$result = curl_exec($ch);
curl_close($ch);
我还没有添加将电子邮件发送给自己的代码,但这应该很简单。 我在这段代码中遇到的问题是,它没有将我重定向到MailChimp页面,而是将其实际加载到process_email.php
(并且将其错误加载到引导中)。
我知道如果使用JavaScript,我可以完成我想做的事情,但是在我看来,这不是解决此问题的正确方法。 谁能给我任何帮助?
如果我理解正确:您想先在本地发布数据,然后将POST形式发送到Mailchimp。 如果您要这样做,那么使用一些连接到表单(或表单按钮)的JS可能是最好的方法。 我认为这是处理您情况的正确方法。
如下所示的jQuery可以首先在本地发布表单,一旦请求完成,它将使用给定的操作url(mailchimp)提交表单。
$(document).ready(function(){
$('#submit-button').click(function(event){
event.preventDefault();
$.post("your_email_parser.php", $('#form-id').serialize(), function(){
$('#form-id').submit();
});
});
});
...
<form id='form-id' action='http://myMailchimpUser.us2.list-manage.com/subscribe/post' method='post'>
...
<input type='submit' id='submit-button' />
</form>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.