Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP错误-“;试图获取“中非对象的属性”;_Php_Mailchimp - Fatal编程技术网

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

PHP错误-“;试图获取“中非对象的属性”;,php,mailchimp,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 = '****************

我使用下面的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.";
}

很抱歉回复太晚,但只要看到这一点的人都知道:

出现此错误是因为您尝试使用的变量不是“对象” 看

$data在本例中是一个数组。对于使用类和对象的任何人,请确保启动您的类,或启动一个已启动的全局类

例如


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

$data是一个数组…您需要检查$result==FALSE,然后检查它是否执行:
curl_error($ch);
在json_decode()之前也检查有无错误。
if($result==FALSE){die('1');}否则{die('2');}
当我运行这个时,我得到了“2”。这意味着什么?这意味着调用成功,现在是
var\u dump(json\u decode($result));
而不是
die('2');
当出现错误时,您将看到结果
$result
为false,否则它有来自服务器的结果。。。
$object = new class();
global $object;