我有以下PHP'订阅'脚本,我用它来允许用户注册我的MailChimp列表。
它按预期工作(将我的电子邮件地址添加到我的MailChimp列表中),但我在提交时也收到错误。
这是我的错误:
Notice: Trying to get property of non-object in
E:\domains\*******\subscribe.php on line 29
第29行是:if ($data->error){
这是我的代码:
<?php
$apiKey = '*********************************';
$listId = '*******************';
$double_optin=true;
$send_welcome=false;
$email_type = 'html';
$email = $_POST['email'];
//replace us2 with your actual datacenter
$submit_url = "http://us5.api.mailchimp.com/1.3/?method=listSubscribe";
$data = array(
'email_address'=>$email,
'apikey'=>$apiKey,
'id' => $listId,
'double_optin' => $double_optin,
'send_welcome' => $send_welcome,
'email_type' => $email_type
);
$payload = json_encode($data);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $submit_url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, urlencode($payload));
$result = curl_exec($ch);
curl_close ($ch);
$data = json_decode($result);
if ($data->error){
echo $data->error;
} else {
echo "Thanks. You will receive an email shortly to confirm your subscription.";
}
如果我还提供了HTML表单代码和我正在使用的AJAX,它会有帮助吗?
非常感谢任何帮助者: - )
答案 0 :(得分:0)
很抱歉迟到的回复,但正如所有看到这个的人知道的那样:
您收到此错误,因为您尝试使用的变量不是“对象” 见http://php.net/manual/en/language.oop5.php
在这种情况下,$ data是一个数组。对于使用类和对象的任何人,请务必启动您的课程,或全球已经开始的课程。
例如
$object = new class();
OR
global $object;
如果已在任何包含的文件中声明$ object。