人人商城(分销版)1.11.7微擎原版,提示“抱歉,您无权进行该操作,请先登录!”

话说,当时这个项目迁移服务器,我把项目迁移到一台windows 服务器后,用IIS部署。

前负责人只给了一个提示“需要SSL”证书,用https访问;

我安装证书后,打开页面,测试https正常,就没有再管;

后期,客服和客户一直反应“程序无法正常使用,总是提示错误信息”(如上图);

询问前负责人,他也不知道啥情况(咱不往消极方面脑补);

通过测试发现,只要打开时用HTTPS 访问,是没有问题的,但是部分链接,程序给的全路径地址,用户直接点击,就会提示错误信息;

接着就放年假了;

年假期间,客户和客服还是一直反应这个问题,我就暗下决心,开工的第一件事,就是把这个问题给处理掉。

上午,处理了一些可以迅速解决的问题,

下午,14:00开始处理这个系统的提示错误信息的问题,一直到晚上22:35才处理掉,历时9个小时左右。

他的这个程序的路径是这样的:

/web/index.php?c=site&a=entry&eid=8

/web/index.php   这个是根目录的文件

c=site      这个应该是control的简写c,也就是控制器

a=entry   这个应该是action的简写a,也就是控制器下面的动作

eid=8     这个就是参数了

if($_W['os'] == 'mobile' && (!empty($_GPC['i']) || !empty($_SERVER['QUERY_STRING']))) {header('Location: ./app/index.php?' . $_SERVER['QUERY_STRING']);
} else {header('Location: ./web/index.php?' . $_SERVER['QUERY_STRING']);

根据根目录的 index.php提供的代码,我在 \web\web\source\site 这个文件夹下面找到了“entry.ctrl.php”文件。

php断点语句,调试的几种方法

https://blog.csdn.net/cplvfx/article/details/83826917

通过测试发现,程序的逻辑判断就在这个“entry.ctrl.php”文件里;

if(!is_error($site)) {//echo("if[is_error(site)]<br>");$sysmodule = system_modules();if(in_array($m, $sysmodule)) { $site_urls = $site->getTabUrls();}$method = 'doWeb' . ucfirst($entry['do']);//var_dump($method);exit($site->$method());
}

问题的关键就在这段代码里,变量$site和$method;这2个变量存在这程序的跳转

接着就找到了“web\addons\ewei_shop\site.php”文件里的这行代码

//订单管理  public function doWebOrder(){ $this->_exec(__FUNCTION__,'list'); }

到这里,我就把路给走死了,不知道接下来程序去哪里了;

我就在这里目录和这个页面代码里继续找突破口,我在“\web\addons\ewei_shop\template\web\_menu.html”这个模板文件里找到了a链接的地址是这样的

<li><a href="{php echo $this->createWebUrl('order', array('op' => 'display'))}">全部订单</a></li>

重点是“createWebUrl()“这个方法,

在”web\addons\ewei_shop\site.php“这个文件里代码找了这一句

require_once IA_ROOT. '/addons/ewei_shop/version.php';
require_once IA_ROOT. '/addons/ewei_shop/defines.php';
require_once EWEI_SHOP_INC.'functions.php';
require_once EWEI_SHOP_INC.'core.php';
require_once EWEI_SHOP_INC.'plugin/plugin.php';
require_once EWEI_SHOP_INC.'plugin/plugin_model.php';
class Ewei_shopModuleSite extends Core { 

然后根据对 ”IA_ROOT“和”EWEI_SHOP_INC“的猜测找到了这个类继承的 Core类

”\web\addons\ewei_shop\core\inc\core.php“

在这个页面搜索“createWebUrl()“这个方法,

 public function createWebUrl($do, $query = array()){global $_W;$do = explode('/', $do);if (count($do) > 1 && isset($do[1])) {$query = array_merge(array('p' => $do[1]), $query);}return $_W['siteroot'] . 'web/' . substr(parent::createWebUrl($do[0], $query, true), 2);}

重点是这个”$_W['siteroot']“和”global $_W“,我知道global是全局变量;

那么,重新,打回,从头开始找,从根目录的”index.php“看起;

require './framework/bootstrap.inc.php';

这一行代码引起了我的注意,开始找这个文件

在”\web\framework\bootstrap.inc.php“找到这个文件,

为什么要找这个文件呢?因为我猜测 用global声明的$_W变量,一定是在程序初始化的时候给赋值的。

其实,在此之前,我一直以为是在某个配置文件里;

直到我看到这个代码

$_W['siteroot'] = htmlspecialchars('http://' . $_SERVER['HTTP_HOST'] . $sitepath);

果断把”http“改成”https“后进行测试,

$_W['siteroot'] = htmlspecialchars('https://' . $_SERVER['HTTP_HOST'] . $sitepath);

卖卖批,成功了! 折腾死我了!

人人商城(分销版)1.11.7微擎原版,提示“抱歉,您无权进行该操作,请先登录!”只因为一个字母,我苦找了9个多小时。相关推荐

  1. qt商业版和开源版的区别_微擎商业版系统V2.0.9全开源版纯净框架

    微擎商业版系统V2.0.9全开源版纯净框架_全新界面无后门无任何限制.该源码不含任何安装模块,最重要的是该版本是一键安装版,主要你上传到服务器上,然后直接运行域名就会直接进入安装环境,不会像网络上的其 ...

  2. 微擎支付提示下单用户不一致,授权快照移除

    微信公众号最近修改授权登陆规则 <微信网页授权能力调整公告> 新增加授权快照功能,导致微擎部分的模块用户不选择授权就直接使用了 所以提示的就是下单用户不一致 修改方式 解决授权快照用户看不 ...

  3. 微擎系统如何登录直接进入人人商城分销中心

    这是未修改之前的代码 修改134行 <?php /*** [WeEngine System] Copyright (c) 2014 WE7.CC* WeEngine is NOT a free ...

  4. 解决微擎人人商城分销中心无法生成推广二维码、商品二维码的问题

    如果推广二维码 和 商品 二维码 无法生成 /addons/ewei_shopv2/data/qrcode/  看看是否有这个目录 没有的话 新建 设置写入权限

  5. 表单源码php,PHP微信表单源码解密开源版 微擎原版功能模块 多功能表单 微信万能表单2.8WEUI高级版...

    本模块主要用于实现各行业的报名.预约.加盟申请.调查等应用在微信端的实现,支持创建N个表单主题,每个表单主题功能设置均独立. 01.自定义表单模型(自定义字段支持字符串.数字.单选.多选.下拉.日历. ...

  6. 微擎公众版、授权版和商业版有什么区别?如何选择?

    微擎版本分为免费和收费两种,免费为公众版不可用于商业运营,授权版和商业版可用于商业运营,授权版相对于商业版会便宜一些为4999元,商业版8800元,功能方面会比授权版支持丰富,新手站长来详细说下微擎免 ...

  7. 卸载人人影视linux,人人影视Web版CentOS一键安装脚本

    人人影视Web版CentOS一键安装脚本 此脚本来自全球主机交流论坛920c大佬制作.目前只支持CentOS6/7系统, 亲测CentOS 7系统顺利安装. 更新: 上网查了下人人影视自己建立了一个区 ...

  8. 微擎应用笔记3--manifest.xml文件使用说明

    微擎在安装或卸载模块时会根据manifest.xml生成(或删除)数据库中相应记录,并执行manifest.xml里指定的脚本. manifest.xml文件内容详细介绍如下: manifest - ...

  9. [转]微擎应用笔记3--manifest.xml文件使用说明

    本文转自:https://blog.csdn.net/seven_north/article/details/79508121 微擎在安装或卸载模块时会根据manifest.xml生成(或删除)数据库 ...

最新文章

  1. matlab与python通信_python和matlab之间数据传输方法
  2. 你怎么得到git总是从特定的分支拉?
  3. 如何快速上手mysql_如何快速上手数据库操作?
  4. 如果当初你爱的再狠一点
  5. 独行快,众行远!永洪第二届数据分析技术与应用高峰论坛圆满结束
  6. Python中数据类型的操作
  7. 【LeetCode笔记】104. 二叉树的最大深度(Java、DFS、二叉树)
  8. 【数据库系统】核心知识归纳总结
  9. SQL 数据库 学习 016 如何附加数据库
  10. for循环中控制事务单个提交问题
  11. 微信支付的商户号和服务商的区别,以及什么是子账户
  12. [Error] invalid operands of types ‘int‘ and ‘double‘ to binary ‘operator‘
  13. ajax请求是宏任务还是微任务_好程序员web前端学习路线分享了解AJAX是什么
  14. Python实现点阵字体读取与转换
  15. java 将Object类型转换为long
  16. OpenGL中的颜色混合功能(一)
  17. PiKachu-File Inclusion(文件包含漏洞)
  18. HTML5消消乐DEMO演示
  19. 大家我是来自广东工业大学的吴文钧
  20. 感谢星球日报、陀螺财经小伙伴的肯定,我们会继续努力哒

热门文章

  1. 4.3 设计一个完善的响应式系统
  2. 基于docker部署 opentsdb + grafana数据监控系统
  3. 吃一堑长一智!2021最新Java面试真题解析
  4. python下载arcgis地图_互联网地图矢量数据Python获取方法
  5. 基于Vue 的瑜伽场馆会员信息管理系统java设计
  6. 踩坑记录:Date接收yyyy-MM-dd HH:mm:ss失败
  7. 数据分析之“设立标准、判断分类”
  8. 【CV系列】脑部肿瘤图像分割
  9. iOS 14 Termius [No route to host] 解决方案
  10. HTTPConnectionPool Max retries exceeded with url