人人商城(分销版)1.11.7微擎原版,提示“抱歉,您无权进行该操作,请先登录!”只因为一个字母,我苦找了9个多小时。
人人商城(分销版)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个多小时。相关推荐
- qt商业版和开源版的区别_微擎商业版系统V2.0.9全开源版纯净框架
微擎商业版系统V2.0.9全开源版纯净框架_全新界面无后门无任何限制.该源码不含任何安装模块,最重要的是该版本是一键安装版,主要你上传到服务器上,然后直接运行域名就会直接进入安装环境,不会像网络上的其 ...
- 微擎支付提示下单用户不一致,授权快照移除
微信公众号最近修改授权登陆规则 <微信网页授权能力调整公告> 新增加授权快照功能,导致微擎部分的模块用户不选择授权就直接使用了 所以提示的就是下单用户不一致 修改方式 解决授权快照用户看不 ...
- 微擎系统如何登录直接进入人人商城分销中心
这是未修改之前的代码 修改134行 <?php /*** [WeEngine System] Copyright (c) 2014 WE7.CC* WeEngine is NOT a free ...
- 解决微擎人人商城分销中心无法生成推广二维码、商品二维码的问题
如果推广二维码 和 商品 二维码 无法生成 /addons/ewei_shopv2/data/qrcode/ 看看是否有这个目录 没有的话 新建 设置写入权限
- 表单源码php,PHP微信表单源码解密开源版 微擎原版功能模块 多功能表单 微信万能表单2.8WEUI高级版...
本模块主要用于实现各行业的报名.预约.加盟申请.调查等应用在微信端的实现,支持创建N个表单主题,每个表单主题功能设置均独立. 01.自定义表单模型(自定义字段支持字符串.数字.单选.多选.下拉.日历. ...
- 微擎公众版、授权版和商业版有什么区别?如何选择?
微擎版本分为免费和收费两种,免费为公众版不可用于商业运营,授权版和商业版可用于商业运营,授权版相对于商业版会便宜一些为4999元,商业版8800元,功能方面会比授权版支持丰富,新手站长来详细说下微擎免 ...
- 卸载人人影视linux,人人影视Web版CentOS一键安装脚本
人人影视Web版CentOS一键安装脚本 此脚本来自全球主机交流论坛920c大佬制作.目前只支持CentOS6/7系统, 亲测CentOS 7系统顺利安装. 更新: 上网查了下人人影视自己建立了一个区 ...
- 微擎应用笔记3--manifest.xml文件使用说明
微擎在安装或卸载模块时会根据manifest.xml生成(或删除)数据库中相应记录,并执行manifest.xml里指定的脚本. manifest.xml文件内容详细介绍如下: manifest - ...
- [转]微擎应用笔记3--manifest.xml文件使用说明
本文转自:https://blog.csdn.net/seven_north/article/details/79508121 微擎在安装或卸载模块时会根据manifest.xml生成(或删除)数据库 ...
最新文章
- matlab与python通信_python和matlab之间数据传输方法
- 你怎么得到git总是从特定的分支拉?
- 如何快速上手mysql_如何快速上手数据库操作?
- 如果当初你爱的再狠一点
- 独行快,众行远!永洪第二届数据分析技术与应用高峰论坛圆满结束
- Python中数据类型的操作
- 【LeetCode笔记】104. 二叉树的最大深度(Java、DFS、二叉树)
- 【数据库系统】核心知识归纳总结
- SQL 数据库 学习 016 如何附加数据库
- for循环中控制事务单个提交问题
- 微信支付的商户号和服务商的区别,以及什么是子账户
- [Error] invalid operands of types ‘int‘ and ‘double‘ to binary ‘operator‘
- ajax请求是宏任务还是微任务_好程序员web前端学习路线分享了解AJAX是什么
- Python实现点阵字体读取与转换
- java 将Object类型转换为long
- OpenGL中的颜色混合功能(一)
- PiKachu-File Inclusion(文件包含漏洞)
- HTML5消消乐DEMO演示
- 大家我是来自广东工业大学的吴文钧
- 感谢星球日报、陀螺财经小伙伴的肯定,我们会继续努力哒
热门文章
- 4.3 设计一个完善的响应式系统
- 基于docker部署 opentsdb + grafana数据监控系统
- 吃一堑长一智!2021最新Java面试真题解析
- python下载arcgis地图_互联网地图矢量数据Python获取方法
- 基于Vue 的瑜伽场馆会员信息管理系统java设计
- 踩坑记录:Date接收yyyy-MM-dd HH:mm:ss失败
- 数据分析之“设立标准、判断分类”
- 【CV系列】脑部肿瘤图像分割
- iOS 14 Termius [No route to host] 解决方案
- HTTPConnectionPool Max retries exceeded with url