- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我的网络邮件有错误
PHP Fatal error: Call to a member function GetFolderByType() on a non-object in /home/.../domains/.../public_html/check-mail.php on line 248
第 248 行是:
$oInboxFolder = $oFolders->GetFolderByType(FOLDERTYPE_Inbox);
我的 php 版本是 5.4完整代码是:
<?php
@header('Content-type: text/html; charset=utf-8');
defined('WM_ROOTPATH') || define('WM_ROOTPATH', (dirname(__FILE__).'/'));
include_once WM_ROOTPATH.'application/include.php';
$oInput = new api_Http();
$iAccountId = CSession::Get(APP_SESSION_ACCOUNT_ID, false);
require_once WM_ROOTPATH.'common/inc_constants.php';
require_once WM_ROOTPATH.'common/class_convertutils.php';
require_once WM_ROOTPATH.'common/class_mailprocessor.php';
/* @var $oApiUsersManager CApiUsersManager */
$oApiUsersManager = CApi::Manager('users');
/* @var $oAccount CAccount */
$oAccount = AppGetAccount($iAccountId);
if (!$oAccount)
{
CApi::Log('check-mail: $oAccount = null');
echo '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html><head><meta http-equiv="Content-Script-Type" content="text/javascript" /><link rel="shortcut icon" href="favicon.ico" /></head>
<body onload="parent.CheckEndCheckMailHandler();"><script>parent.EndCheckMailHandler("session_error");</script></body></html>';
exit();
}
AppIncludeLanguage($oAccount->User->DefaultLanguage);
@ob_start();
@ob_end_flush();
$sErrorDesc = '';
$aGlobalForders4Update = array();
/**
* @global $aGlobalForders4Update
* @param int $id
* @param string $fullName
*/
function AddFolder4Update($id, $fullName)
{
global $aGlobalForders4Update;
$aGlobalForders4Update[$id] = $fullName;
}
/**
* @global $aGlobalForders4Update
* @return string
*/
function Folders4UpdateToJsArray()
{
global $aGlobalForders4Update;
$sResult = array();
if ($aGlobalForders4Update && count($aGlobalForders4Update) > 0)
{
foreach ($aGlobalForders4Update as $id => $name)
{
$sResult[] = '{id: '.((int) $id).', fullName: \''.ConvertUtils::ClearJavaScriptString($name, '\'').'\'}';
}
}
return '['.implode(',', $sResult).']';
}
/**
* @param bool $bAdd = false
* @return void
*/
function myFlush($bAdd = false)
{
if ($bAdd)
{
echo str_repeat(' ', 256);
}
@ob_flush();
@flush();
}
/**
* @param string $sFolderName
* @param int $iMessageCount
*/
function ShowDownloadedMessageNumber($sFolderName = '', $iMessageCount = -1)
{
static $msgNumber = 0;
static $msgTime = 0;
if ($sFolderName != '' && $iMessageCount != -1)
{
$msgNumber = 0;
$msgTime = 0;
echo '<script>parent.SetCheckingFolderHandler("'.$sFolderName.'", '.$iMessageCount.');</script>'.CRLF;
if ($iMessageCount == 0)
{
echo '<script>parent.SetStateTextHandler(parent.Lang.GettingMsgsNum);</script>'.CRLF;
}
myFlush(true);
}
else
{
$msgNumber++;
if (time() - $msgTime > 0)
{
echo '<script>parent.SetRetrievingMessageHandler('.$msgNumber.');</script>'.CRLF;
$msgTime = time();
myFlush(true);
}
}
}
function ShowLoggingToServer()
{
echo '<script>parent.SetStateTextHandler("'.ConvertUtils::ClearJavaScriptString(JS_LANG_LoggingToServer, '"').'");</script>'.CRLF;
myFlush(true);
}
function ShowLoggingOffFromServer()
{
echo '<script>parent.SetStateTextHandler("'.ConvertUtils::ClearJavaScriptString(LoggingOffFromServer, '"').'");</script>'.CRLF;
myFlush(true);
}
function ShowDeletingMessageNumber($resetCount = false)
{
static $msgNumber = 0;
static $msgTime = 0;
if ($resetCount)
{
$msgNumber = 0;
$msgTime = 0;
}
else
{
$msgNumber++;
if (time() - $msgTime > 0)
{
echo '<script>parent.SetDeletingMessageHandler('.$msgNumber.');</script>'.CRLF;
$msgTime = time();
myFlush(true);
}
}
}
/**
* @param string $sText
*/
function SetError($sText)
{
CSession::Set(INFORMATION, $sText);
CSession::Set(ISINFOERROR, true);
}
?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<meta http-equiv="Content-Script-Type" content="text/javascript" />
<link rel="shortcut icon" href="favicon.ico" />
</head>
<body onload="parent.CheckEndCheckMailHandler();">
<?php
ConvertUtils::SetLimits();
$GLOBALS['useFilters'] = true;
$type = (int) $oInput->GetPost('Type', 0);
CApi::Log('CM: Check mail type = '.$type);
if (1 === $type)
{
$aAccounts = $oApiUsersManager->GetUserIdList($oAccount->IdUser);
if (is_array($aAccounts) && 0 < count($aAccounts))
{
foreach ($aAccounts as $iAccountItemId)
{
/* @var $oListAccount CAccount */
$oListAccount = ($oAccount->IdAccount !== $iAccountItemId)
? AppGetAccount($iAccountItemId) : $oAccount;
$oProcessor = new MailProcessor($oListAccount);
if (!$oProcessor->SynchronizeFolders())
{
$sErrorDesc = getGlobalError();
$oProcessor->MailStorage->Disconnect();
break;
}
if ($oListAccount->GetMailAtLogin)
{
echo '<script>parent.SetCheckingAccountHandler("'.$oListAccount->Email.'");</script>'.CRLF;
myFlush(true);
ShowLoggingToServer();
$oFolders = null;
$oProcessor->MailStorage->DownloadedMessagesHandler = 'ShowDownloadedMessageNumber';
$oFolders =& $oProcessor->GetFolders();
if (!$oProcessor->Synchronize($oFolders))
{
$sErrorDesc = getGlobalError();
$oProcessor->MailStorage->Disconnect();
break;
}
ShowLoggingOffFromServer();
$oProcessor->MailStorage->Disconnect();
unset($oFolders, $oProcessor);
}
unset($oListAccount);
}
}
$sErrorDesc = trim($sErrorDesc);
if (strlen($sErrorDesc) > 0)
{
SetError($sErrorDesc);
}
echo '<script>parent.EndCheckMailHandler(\'\');</script>'.CRLF;
}
else if (2 === $type)
{
$oProcessor = new MailProcessor($oAccount);
$oFolders =& $oProcessor->GetFolders();
$oProcessor->MailStorage->DownloadedMessagesHandler = null;
$oProcessor->MailStorage->UpdateFolderHandler = 'AddFolder4Update';
$oInboxFolder = $oFolders->GetFolderByType(FOLDERTYPE_Inbox);
if ($oInboxFolder)
{
$oInboxFolder->SubFolders = null;
$foldersForInboxSynchronize = new FolderCollection();
$foldersForInboxSynchronize->Add($oInboxFolder);
if (!$oProcessor->Synchronize($foldersForInboxSynchronize))
{
$sErrorDesc = getGlobalError();
}
$oProcessor->MailStorage->Disconnect();
}
else
{
$sErrorDesc = '';
}
$sErrorDesc = trim($sErrorDesc);
echo '<script>
parent.SetUpdatedFolders('.Folders4UpdateToJsArray().', false);
parent.EndCheckMailHandler("'.ConvertUtils::ClearJavaScriptString($sErrorDesc, '"').'");
</script>'.CRLF;
}
else
{
ShowLoggingToServer();
$oProcessor = new MailProcessor($oAccount);
$oFolders =& $oProcessor->GetFolders();
$oProcessor->MailStorage->DownloadedMessagesHandler = 'ShowDownloadedMessageNumber';
$oProcessor->MailStorage->UpdateFolderHandler = 'AddFolder4Update';
if (!$oProcessor->Synchronize($oFolders))
{
$sErrorDesc = getGlobalError();
}
ShowLoggingOffFromServer();
$oProcessor->MailStorage->Disconnect();
$sErrorDesc = trim($sErrorDesc);
echo '<script>
parent.SetUpdatedFolders('.Folders4UpdateToJsArray().');
parent.EndCheckMailHandler("'.ConvertUtils::ClearJavaScriptString($sErrorDesc, '"').'");
</script>'.CRLF;
}
myFlush(true);
?>
</body>
</html>
最佳答案
使用 var_dump($oFolders)
获取有关 $oFolders
的更多详细信息。
请注意 $oProcessor->GetFolders();
在 if(2 === $type)
block 中不返回任何对象。
关于PHP fatal error : Call to a member function GetFolderByType() on a non-object in,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23582264/
我们有一个包含重复用户记录的数据库,我需要根据几个因素选择“最佳”用户: 应先选择具有成员(member)资格的用户,然后再选择没有成员(member)资格的用户 成员(member)有级别,在所有条
不知道为什么 Visual Studio 发出此警告: Access of shared member, constant member, enum member or nested type thr
我有一个数据库设置来注册网站的成员(member)专用区域的成员(member)。我可以使用复选框回显所有注册成员,以便我可以选择从管理页面删除单个成员,但我似乎无法弄清楚如何在单击提交按钮时选择删除
假定前缀一元运算符可以“由不带参数的非静态成员函数或带一个参数的非成员函数实现”(§13.5.1[over.unary]/1),除了适用于任何成员/非成员函数选择的通常封装/代码重用设计原理之外,还有
拥有 struct Person { string name; }; Person* p = ... 假设没有运算符被重载。 哪个更有效(如果有的话)? (*p).name 对比 p->name
进程文件: members-area or members-area.exe 进程名称: 5-1-61-96 进程类别:存在安全风险的进程 英文描述: 
引用资料 http://msdn.microsoft.com/en-us/library/6tc47t75%28v=VS.80%29.aspx http://msdn.microsoft.com/en
这个问题在这里已经有了答案: Is there any reason to use this-> (16 个答案) 关闭 7 年前。 这有什么区别: int MyClass::getId() {
我正在制作一个网站,您需要在其中注册,然后创建一个角色来玩。我如何将注册页面中使用的表格与玩家的表格结合起来,以便玩家始终获得他创建的角色。 我有一个表members,用于存储注册用户以及角色的 ta
我处于困境中,我被委托(delegate)创建一个 PHP Web 应用程序,该应用程序允许一个人注册,然后该用户可以再注册 5 个其他用户,他注册的其他用户也可以每个注册 5 个成员。 我希望创建数
我试图在成员(member)页面上显示一个非常简单的用户名。我已经在 stackoverflow 上搜索过,但使用我发现的内容不起作用。 我使用 HTML 表单指南中非常常见的注册/登录脚本,该脚本使
我正在使用CodeIgniter,我的问题是关于MySQL查询。我有两个表,分别是成员和关系。 成员表 我正在做的是,根据member_type将所有用户添加到成员表中。如果 member_type
我有一个表,用于存储 2 个成员(成员 A 和成员 B)之间的聊天信息。现在,当成员 A 删除他的消息时,我会抛出这样的 sql 请求 $deleting = mysqli_query($connec
from bs4 import BeautifulSoup import requests r = requests.get('http://medicalassociation.in/doctor-
我有两个我无法修改的类,它们都具有完全相同的成员: class Pose1 { public: double x,y; }; class Pose2 { public: d
我正在测试服务器上运行机器人。当前 channel 中有 3 个成员(member_count of 3),但它只返回一个成员。该成员是机器人。 代码: import discord from dis
我有一个对象,我们称之为 o,以及对 o 的引用。 在o范围内,我设置了一个成员,我们称之为m。 所以在 o 中,我调用: o.m = "blah" 在 o 之外,我访问 m: console.log
我正在尝试实现自定义成员(member)资格提供程序并希望更改 GetUser 方法。问题是 GetUser 返回 MembershipUser,而我想返回 MyMembershipUser,它有两个
我的网站有一个推荐给 friend 的按钮。为了鼓励人们使用此功能,我想用积分奖励那些使用它的人(积分将兑换奖品......还不知道)。 好的,所以我有这样的结构: 表单.php 您可以在此处输入 f
我在 MySQL 中有三个表, 组(键:group_id) 成员(键:member_id) group_member_relations 键:group_id, member_id 最后一个表包含 m
我是一名优秀的程序员,十分优秀!