2014-02-18 71 views
0

我试图访问我的Opencart的的管理页面,但我收到此错误:我的opencart配置有什么问题?

Fatal error: Call to a member function getFirstName() on a non-object in /home/xxxxxx/public_html/catalog/controller/common/header.php on line 73

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

真的,配置看起来不错。 有没有人见过这个错误?

这是在错误被acused行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')); 

谢谢大家。错误是我复制了错误的文件,并且不够彻底地阅读代码。谢谢你们

+0

我怀疑这是一个没有正确上传的文件 – CodeBird

+0

您可以编辑您的文章,我编辑我的评论时正在考虑其他内容当我评论时,我认为它应该是一些文件没有正确上传 – CodeBird

+0

我再次上​​传。但我想不出它可能是哪个文件。 – Adinan

回答

0

你是否检查了两个配置文件,在管理文件夹和根目录中的一个,如果他们配置正确呢?

你正在显示的是根区域中的一个,请检查管理区域中的那个。 也尝试添加:

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/'); 

如果这些都设置这样的,在代码那么肯定有什么车。

+0

我现在觉得很愚蠢。我必须复制错误的配置文件,同时比较一个。我没有彻底阅读代码。对不起,感谢您的帮助 – Adinan

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并添加自己检索用户名的方法和逻辑。