使用cURL POST形式两个地方(Using cURL to POST form to two p

2019-06-27 13:12发布

昨天我问一个问题 ,我怎么能去劫持我的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,但在我看来,是不是去对此的正确方法。 任何人都可以给我任何帮助吗?

Answer 1:

如果我理解正确的话:要在本地POST数据第一,然后让表单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>


文章来源: Using cURL to POST form to two places