这是代码的两部分(第108行是NoBlankFunctions.php的最后一行): 似乎一切都很好。它是带有newReposnderOAuth的$ responder的声明(可以假设这个类运行良好,因为它被该公司的许多其他客户端使用)。比某些时候代码调用addNewUser,这是NoBlankFunctions的一部分。在这个函数里面有一个响应者的调用,在同一个php文件中的另一个函数。最后它在尝试发送http请求时崩溃。
include 'OAuth.php';
include 'responder_sdk.php';
include 'NoBlankFunctions.php';
$client_key = '28FB957EA00B920BE7F83A365CC7ABAF';
$client_secret = '0B06B5A69DB0F3BCB80A716031C2DE6C';
$user_key = '1F566B1DE821BE68B5F485F75610F610';
$user_secret = '5D1406DACCA6B862AD4AE361823BB108';
$responder = new ResponderOAuth($client_key, $client_secret, $user_key, $user_secret);
.
.
.
addNewUser($registerFirstName, $registerLastName, $registerUserName,
$registerPass, $registerEmail, $registerGender,
$registerAge, $registerCountry, "Heb", $registerUserGMT);
noBlankFunctions.php
function addNewUser($registerFirstName, $registerLastName, $registerUserName,
$registerPass, $registerEmail, $registerGender,
$registerAge, $registerCountry, $registerLang, $registerUserGMT)
{
global $db;
$sql = "INSERT INTO `".$db."`.`users` (`userEmail`, `nickName`, `password`, `firstName`, `lastName`, `State`, `userGMT`, `language`, `gender`, `age`, `currentDay`, `dateForCurrentDay`, `isUserCheck`, `isUserDone`, `isUserPayed`)
VALUES ('".$registerEmail."', '".$registerUserName."', '".$registerPass."', '".$registerFirstName."', '".$registerLastName."', '".$registerCountry."', '".$registerUserGMT."', '".$registerLang."', '".$registerGender."', '".$registerAge."', '0', '".date("Y/m/d")."', '0', '0', '0');";
$result = mysql_query($sql);
if ($registerLang == 'En')
{
$listNum = 37742;
}
elseif($registerGender == 'Male')
{
$listNum = 37713;
}
else
{
$listNum = 37741;
}
responder($registerEmail, $registerFirstName, $listNum);
}
function responder($userMail, $userFirstName, $listNum)
{
$post_data = array(
'subscribers' => json_encode(
array(
array(
'EMAIL' => $userMail,
'NAME' => $userFirstName
)
)
)
);
$response = $responder->http_request('lists/'.$listNum.'/subscribers', 'post', $post_data);
}
有什么想法吗?
答案 0 :(得分:0)
错误消息说$ responder不是一个对象,换句话说,它还没有被实例化;试图访问非对象的http_request方法显然不会起作用。
我注意到您已实例化$responder
,但之后您尝试在文件$responder
中的函数responder
内引用noBlankFunctions.php
。我觉得你引用的是$responder
变量的局部范围,它不是一个对象。如果您尝试使用全局预修复声明$responder
,应该引用您在上面实例化的原始$ responder变量。
gloabl $responder
答案 1 :(得分:0)
$responder
未在函数范围内定义。
(按从大多数到最不可取的顺序)将其作为附加参数传递,或者在函数体中的某处添加global $responder
(在尝试访问它之前),或访问$GLOBALS['responder']
。