ecshop后台闪退init.php,关于ECSHOP后台无法登陆的问题

该博客探讨了在PHP环境中,当HTTP_REFERER携带域名而$admin_path为IP地址时,导致条件判断错误的问题。作者指出问题源于includes/cls_ecshop.php的get_domain()函数,并提出解决方案:将函数修改为硬编码域名返回。测试验证了这种方法的有效性,对于遇到相同问题的开发者提供了参考。
摘要由CSDN通过智能技术生成

admin/includes/init.php 下305行:

strpos(preg_replace('/:\d+/', '', $_SERVER['HTTP_REFERER']), $admin_path) === false

这是由于局域网中IP没有直接指向,造成解析完域名之后,再通过内部IP访问数据。此时的$_SERVER['HTTP_REFERER']是带域名的,$admin_path 是带IP的,所以判断为true。

症结在includes/cls_ecshop.php 的get_domain()函数,在上面情况下,$_SERVER['HTTP_HOST'], $_SERVER['SERVER_NAME'], $_SERVER['SERVER_ADDR']都是IP地址,导致$admin_path也就是IP地址了。

如果有和我一样的情况,可以试着把get_domain()函数里写成这样

function get_domain()

{

return $this->http() . '你的域名.com'

}

此方法经测试可行

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值