我的opencart配置出了什么问题?

时间:2014-02-18 20:14:58

标签: php opencart

我正在尝试访问我的opencart的管理页面,但我收到此错误:

  

致命错误:在第73行的/home/xxxxxx/public_html/catalog/controller/common/header.php中的非对象上调用成员函数getFirstName()

我不是opencart的专家,但我认为管理员不应该从目录中访问文件。

实际上,配置看似正确。 有没有人见过这个错误?

这是在错误中被使用的行73

$this->data['text_logged'] = sprintf($this->language->get('text_logged'), $this->url->link('account/account', '', 'SSL'), $this->customer->getFirstName(), $this->url->link('account/logout', '', 'SSL'));

谢谢大家。错误是我复制了错误的文件并且愚蠢到不能彻底阅读代码。谢谢你们

2 个答案:

答案 0 :(得分:0)

你是否检查了admin文件夹中的配置文件和root文件中的配置文件,如果它们配置正确的话?

您要显示的是根区域中的那个,请同时检查管理区域中的那个。 还可以尝试添加:

define('HTTPS_ADMIN', 'http://yourdomain.com/admin/');

管理员配置也应如下所示:

// HTTP
define('HTTP_SERVER', 'http://yourdomain.com/admin/');
define('HTTP_CATALOG', 'http://yourdomain.com/');
define('HTTP_IMAGE', 'http://yourdomain.com/image/');

// HTTPS
define('HTTPS_SERVER', 'http://yourdomain.com/admin/');
define('HTTPS_IMAGE', 'http://yourdomain.com/image/');
define('HTTPS_CATALOG', 'http://yourdomain.com/');

如果这些是这样设置的,那么代码中肯定存在一些错误。

答案 1 :(得分:0)

问题在于这一行:

$this->data['text_logged'] = sprintf($this->language->get('text_logged'), $this->url->link('account/account', '', 'SSL'), $this->customer->getFirstName(), $this->url->link('account/logout', '', 'SSL'));
                    =>                                    =>                                          =>                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

在管理时,$this->customer为空,因为$customer未注册(与目录相反,缺少$user)。而不是在管理中,$user对象已注册,因此您可以调用$this->user

因此你需要这样称呼:

$this->user->getUserName()

而不是

$this->customer->getFirstName()

如果您想获取登录用户的名字,则必须编辑核心文件system/library/user.php并添加用于自己检索用户名字的方法和逻辑。