PHP错误 - “试图获取非对象的属性”

时间:2013-07-08 09:39:37

标签: php mailchimp

我有以下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,它会有帮助吗?

非常感谢任何帮助者: - )

1 个答案:

答案 0 :(得分:0)

很抱歉迟到的回复,但正如所有看到这个的人知道的那样:

您收到此错误,因为您尝试使用的变量不是“对象” 见http://php.net/manual/en/language.oop5.php

在这种情况下,

$ data是一个数组。对于使用类和对象的任何人,请务必启动您的课程,或全球已经开始的课程。

例如

$object = new class();

OR

global $object;

如果已在任何包含的文件中声明$ object。