ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

php – 使用cURL将表单POST到两个地方

2019-10-09 00:34:13  阅读:265  来源: 互联网

标签:php forms post mailchimp curl


昨天我问a question关于如何劫持我的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数据,然后将表单POST发送到Mailchimp.如果这是你想要做的,那么使用连接到表单(或表单按钮)的一些JS可能是最好的方法.我认为这是适合你的情况的正确方法.

像下面的jQuery将首先在本地POST表单,并且一旦该请求完成,它将使用给定的动作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>

标签:php,forms,post,mailchimp,curl
来源: https://codeday.me/bug/20191008/1875300.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有