这个是因为token的值还没有,导致的原因有很多。比如单页结算的某个XML文件就会导致。
token一般是登陆后才能获取,可是如果在不适当的地方调用就会有错误。我们可以看看下面代码:
- // 打开 admin/controller/common/header.php
- if (!isset($this->request->get['token']) || !isset($this->session->data['token']) || ($this->request->get['token'] != $this->session->data['token'])) {
- $data['logged'] = '';
- $data['home'] = $this->url->link('common/dashboard', '', 'SSL');
- } else {
- $data['logged'] = true;
- //巴拉巴拉...
- }
可以看到,没有token的时候,没有GET/session到TOKEN的时候,这时候的登陆状态是否。在登陆状态是否的时候,token没有值,引用固然报错。
使用isset
下面是个示范例子,具体根据具体代码使用,把可能空值的变量使用系统函数 isset()
- //源代码
- $data['d_shopunity'] = $this->url->link('d_shopunity/extension', 'token='.$this->request->get['token'], 'SSL');
- //使用 isset()
- $data['d_shopunity'] = $this->url->link('d_shopunity/extension', 'token='.isset($this->request->get['token']), 'SSL');
修改插入地方
默认是在index的function里第一行插入,我们修改在48行(else)后即可,因为这时候token的值已经有了。如图阴影的地方。
这里只是个举例,其他的参考实际情况。一般这个报错会指定路径,看看路径这段代码是所属哪个XML的就去哪个XML文件修改,不知道的可以复制所在行代码,利用编辑器批量搜索下xml文件,也有可能是ocmod文件里的,如果是ocmod文件里的请去数据库查找。具体看扩展文章。
扩展文章
上面这篇文章里有一个很详细的DEBUG思路。
您可以选择一种方式赞助本站
支付宝扫一扫赞助
微信钱包扫描赞助