mailchimp API 订阅用户的问题
issue with mailchimp API subscribing user
根据这篇文章:http://codeandfun.blogspot.com/2014/02/mailchimp-api-subscribe-user-email.html,我已经设置了我的视图并需要 mailchimp API。我不知道为什么会收到 500 内部服务器错误。这是 "test.php":
<?php
$api_key = "#####";
$list_id = "252557";
require('vendor/mailchimp/src/Mailchimp.php');
$Mailchimp = new Mailchimp( $api_key );
$Mailchimp_Lists = new Mailchimp_Lists( $Mailchimp );
$subscriber = $Mailchimp_Lists->subscribe( $list_id, array( 'email' => htmlentities($_POST['email']) ) );
if ( ! empty( $subscriber['leid'] ) ) {
echo "success";
}
else
{
echo "fail";
}
?>
这是标记:
<div class="message"></div>
<form action="test.php" role="form" method="post" id="subscribe">
<input type="email" id="email" name="email" placeholder="you@yourself.com" value="">
<button type="submit">SUBSCRIBE</button>
</form>
这是我的 JS:
<script src="scripts/jquery.js"></script>
<script>
$(document).ready(function() {
$('#subscribe').submit(function() {
if (!valid_email_address($("#email").val()))
{
$(".message").html('The email address you entered was invalid. Please make sure you enter a valid email address to subscribe.');
}
else
{
$(".message").html("<span style='color:green;'>Adding your email address...</span>");
$.ajax({
url: 'test.php',
data: $('#subscribe').serialize(),
type: 'POST',
success: function(msg) {
if(msg=="success")
{
$("#email").val("");
$(".message").html('<span style="color:green;">You have successfully subscribed to our mailing list.</span>');
}
else
{
$(".message").html('The email address you entered was invalid. Please make sure you enter a valid email address to subscribe.');
}
}
});
}
return false;
});
});
function valid_email_address(email)
{
var pattern = new RegExp(/^[+a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/i);
return pattern.test(email);
}
</script>
下面是来自控制台的完整错误消息:
POST http://127.0.0.1:9000/test.php 500 (Internal Server
Error)jQuery.ajaxTransport.options.send @ jquery.js:9664jQuery.extend.ajax @
jquery.js:9215(anonymous function) @ test-form.php:22jQuery.event.dispatch @
jquery.js:4670jQuery.event.add.elemData.handle @ jquery.js:4338
细节决定成败,mailchimp 期望列表的 ID 与 url 中隐含的列表 ID 不同。您必须导航至列表设置 > 列表名称和广告系列默认值才能获得正确的 ID。问题已解决。
根据这篇文章:http://codeandfun.blogspot.com/2014/02/mailchimp-api-subscribe-user-email.html,我已经设置了我的视图并需要 mailchimp API。我不知道为什么会收到 500 内部服务器错误。这是 "test.php":
<?php
$api_key = "#####";
$list_id = "252557";
require('vendor/mailchimp/src/Mailchimp.php');
$Mailchimp = new Mailchimp( $api_key );
$Mailchimp_Lists = new Mailchimp_Lists( $Mailchimp );
$subscriber = $Mailchimp_Lists->subscribe( $list_id, array( 'email' => htmlentities($_POST['email']) ) );
if ( ! empty( $subscriber['leid'] ) ) {
echo "success";
}
else
{
echo "fail";
}
?>
这是标记:
<div class="message"></div>
<form action="test.php" role="form" method="post" id="subscribe">
<input type="email" id="email" name="email" placeholder="you@yourself.com" value="">
<button type="submit">SUBSCRIBE</button>
</form>
这是我的 JS:
<script src="scripts/jquery.js"></script>
<script>
$(document).ready(function() {
$('#subscribe').submit(function() {
if (!valid_email_address($("#email").val()))
{
$(".message").html('The email address you entered was invalid. Please make sure you enter a valid email address to subscribe.');
}
else
{
$(".message").html("<span style='color:green;'>Adding your email address...</span>");
$.ajax({
url: 'test.php',
data: $('#subscribe').serialize(),
type: 'POST',
success: function(msg) {
if(msg=="success")
{
$("#email").val("");
$(".message").html('<span style="color:green;">You have successfully subscribed to our mailing list.</span>');
}
else
{
$(".message").html('The email address you entered was invalid. Please make sure you enter a valid email address to subscribe.');
}
}
});
}
return false;
});
});
function valid_email_address(email)
{
var pattern = new RegExp(/^[+a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/i);
return pattern.test(email);
}
</script>
下面是来自控制台的完整错误消息:
POST http://127.0.0.1:9000/test.php 500 (Internal Server
Error)jQuery.ajaxTransport.options.send @ jquery.js:9664jQuery.extend.ajax @
jquery.js:9215(anonymous function) @ test-form.php:22jQuery.event.dispatch @
jquery.js:4670jQuery.event.add.elemData.handle @ jquery.js:4338
细节决定成败,mailchimp 期望列表的 ID 与 url 中隐含的列表 ID 不同。您必须导航至列表设置 > 列表名称和广告系列默认值才能获得正确的 ID。问题已解决。