我目前正在研究一种API,以便从我们的数据库中以JSON的形式检索数据。我已经决定在检索数据之前强制验证。
因为我正在使用OpenCart,所以我获得了名为isLogged()
的函数。
但是,据我所知,有两个isLogged()
:
isLogged()
用户,即此路径下的管理员:
opencart/upload/system/library/user.php
isLogged()
,在此路径下:
opencart/upload/system/library/customer.php
isLogged()
的使用(据我所知)取决于我的控制器所在位置。我目前正在/opencart/upload/catalog/controller/api/order.php
下开发,根据定义,它位于customer
方面。因此,我无法使用$this->user->isLogged()
,而必须使用$this->customer->isLogged()
,这与管理员验证无关。
如果我尝试使用$this->user->isLogged()
,我会收到以下错误:
PHP Fatal error: Call to a member function isLogged() on a non-object in /vagrant/opencart/upload/catalog/controller/api/order.php
如何在不将控制器移至admin
的情况下验证管理员是否已登录?或者我的分析完全错了?
答案 0 :(得分:2)
$this->session->data['isAdminLogin'] = 0;
if (($this->request->server['REQUEST_METHOD'] == 'POST') && $this->validate()) {
$this->session->data['token'] = md5(mt_rand());
$this->session->data['isAdminLogin'] = 1;
if (isset($this->request->post['redirect'])) {
$this->redirect($this->request->post['redirect'] . '&token=' . $this->session->data['token']);
} else {
$this->redirect($this->url->link('common/home', 'token=' . $this->session->data['token'], 'SSL'));
}
}
用这个替换common / login.php索引函数代码。 现在用这个
检查adminlogin$this->session->data['isAdminLogin']
答案 1 :(得分:1)
使用在/index.php中插入此代码
// User
$registry->set('user', new User($registry));
并使用此代码检查登录管理
//Checks to see if the logged in user has permission to view or edit a particular admin page.
$this->user->isLogged();
//Checks to see if the admin user is logged into their account.
$this->user->getId();
//Gets the ID number of the administrator account.
$this->user->getUserName();
答案 2 :(得分:1)
Opencart 1.5.x
例如,如果您希望页面的访问者不要仅为admin查看语言选择器,则输入/catalog/controller/common/header.php
// Show if logged in as admin
$this->load->library('user');
$this->user = new User($this->registry);
在“protected function index(){”之后说并保存。
然后打开你的模板:
/目录/视图/主题/ * /模板/普通/ header.tpl
<?php echo $language; ?>
你要替换:
<?php if($this->user->isLogged()){echo $language;} ?>
准备好......
答案 3 :(得分:0)
// In Version 3.X
// logged in user id
echo (int)$this->user->getId();