我只是将我的Joomla网站从3.1.1升级到3.3.6。
在https://github.com/joomla/joomla-cms/releases/tag/3.3.6上找到我下载了Joomla_3.3.6-Stable-Update_Package.zip包,并通过我以前的Joomla安装上传了所有文件。
不幸的是,我无法登录并显示以下错误:
致命错误:在第209行的/home/www/.../web/plugins/user/joomla/joomla.php中调用非对象的成员函数checkSession()
第209行:$ this-> app-> checkSession();
我做了额外的测试,似乎所有" $ this-app-> ..."命令失败!
我打开了3.1.1 joomla.php文件并找到了另一种语法:
$app = JFactory::getApplication();
$app->checkSession();
用这个替换3.3.6语法解决了我的问题,但我可以看到类似的"调用"注销时完成,所以我也需要更改它们。
在升级到3.3.6之后看起来新语法($ this-&gt; app-&gt;)在joomla.php中不起作用,现在我担心其他脚本中会出现类似的错误。< / p>
有人已经得到类似的错误,这是Joomla升级的已知问题,如何正确解决这个问题?
提前感谢您的帮助。 乔尔
答案 0 :(得分:1)
为什么你会这样做?很长一段时间以来,Joomla都有一个内置的更新程序,除了将文件复制到正确的位置之外还可以执行多项操作,例如更新表定义,添加新表,数据迁移和删除旧文件。
我的猜测是你的数据库架构现在与PHP不同步。您必须回到备份角色,因为没有明确的方法可以说明记录是否已损坏等。
恢复备份后,请使用Upgrading from an Existing Version FAQ网站Joomla's Doc中描述的方法之一。
由于这个问题是关于Joomla的管理和实施细节,如果您将来可以获得更好的答案,请在将来尝试询问the Joomla Q&A StackExhange site。