您现在的位置是:首页 > 教程 > ecshop商城教程ecshop商城教程
ecshop登陆自动退出的解决方法
语琴2025-01-14 21:33:21ecshop商城教程已有9人查阅
导读最近在做ecshop的二次开发,程序发布后测试出现一个莫名的问题。点击几次页面后出现session丢失,需要重复登陆;本地怎么测试也都无法重现问题。一开始以为是修改程序的问题
最近在做ecshop的二次开发,程序发布后测试出现一个莫名的问题。点击几次页面后出现session丢失,需要重复登陆;本地怎么测试也都无法重现问题。一开始以为是修改程序的问题,可是怎么找都找不着问题所在。网上搜索了一下,说是ip发生了变化引起的。于是做了如下测试:
1、查询并记录下IP
2、登陆
3、随机点击网页,直到要求重新登陆
4、重新查下IP
果然前后两个IP不一样。因而很有可能是由于IP发生变化导致session失效,于是查看了下ecshop的session机制。其中获取session key的函数是这样
includes/cls_session.php(移动端的也类似:mobile/include/cls_session.php) 当IP发生变化时:substr($this->_ip, 0, strrpos($this->_ip, '.'))获取到的IP段,只要不在同一个IP段内便无法获得相同的session key;进而也就无法获得session的具体信息,也就导致重复登陆。这也是为什么本地无法重现问题的原因。好吧,问题找到了。那么怎么解决呢?最简单的办法就是将获取IP段的部分去掉,于是修改后的函数也就成这样了。 这样便可解决重复登陆的问题。但这又涉及到程序的安全性问题,一旦session泄露IP这一步的判断也就失效了。这也进一步降低了网站的安全性,这中间怎么取舍也就见仁见智了。
1、查询并记录下IP
2、登陆
3、随机点击网页,直到要求重新登陆
4、重新查下IP
果然前后两个IP不一样。因而很有可能是由于IP发生变化导致session失效,于是查看了下ecshop的session机制。其中获取session key的函数是这样
includes/cls_session.php(移动端的也类似:mobile/include/cls_session.php) 当IP发生变化时:substr($this->_ip, 0, strrpos($this->_ip, '.'))获取到的IP段,只要不在同一个IP段内便无法获得相同的session key;进而也就无法获得session的具体信息,也就导致重复登陆。这也是为什么本地无法重现问题的原因。好吧,问题找到了。那么怎么解决呢?最简单的办法就是将获取IP段的部分去掉,于是修改后的函数也就成这样了。 这样便可解决重复登陆的问题。但这又涉及到程序的安全性问题,一旦session泄露IP这一步的判断也就失效了。这也进一步降低了网站的安全性,这中间怎么取舍也就见仁见智了。
本文标签:
很赞哦! (0)
上一篇:ecshop数据库操作函数的修改
暂无内容 |
暂无内容 |
暂无内容 |
暂无内容 |
随机图文
ecshop商品浏览历史模板样式怎么修改
ECSHOP的浏览历史样式不是很好,想要修改,发现 history.lbi 中不能修改。需要修改的文件:includes\lib_insert.php,找ecshop后台打印订单修改电话、地址、信息等信息的方法
整理下关于ecshop后台订单的一些小修改1、去除“订单列表”的TEL和[]字样,因为这个不方便打印:ecshop商品批量上传商品属性自定义的方法
ECSHOP的批量上传功能没有像shopex一样可以根据商品类型导出相应的csv,也就是说批量上传只能上传一般的商品属 ,对于我们自己定义的特殊属 还是要自己一个一个填过去。ecshop商品详细页仿淘宝AJAX效果的实现方法
用过淘宝的朋友都知道淘宝购买商品的AJAX效果,此方法通过预先隐藏层让ECSHOP模板也能达到类似效果,有需要的朋友可以照着做修改goods.dwt页面的购买按钮如下
留言与评论 (共有 0 条评论) |