繁体   English   中英

使用cURL将表单过帐到两个地方

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM