ecshop 导航栏bug
2009-05-26 00:34 来源:www.chinab4c.com 作者:admin
在ecshop某个版本,或许是某人修改后又放在网络上开源之后,发现导航有个严重的问题,当被选种的类别,有时候好几个都处于被选中的状态.我认真分析了一下get_navigator()函数,发现里面有一代码不安全,if(strpos($cur_url, $v['url']) === 0) ,这里有明显的bug .
有category.php?id=2 和 category.php?id=21,如果选了category.php?id=21,那么id=2也处于被选种状态,因为strpos('category.php?id=21','category.php?id=21') === 0 并且 strpos('category.php?id=21','category.php?id=2') ===0 所以都被选中了.
解决办法
$condition = empty($ctype) ? (strpos($cur_url, $v['url']) === 0) : (strpos($cur_url, $v['url']) === 0 && strlen($cur_url) == strlen($v['url']));
if ($condition)
{
$navlist['middle'][$k]['active'] = 1;
$noindex = true;
$active += 1;
}
或者直接用==符号来判断.
来源:中国B4C电子商务
最近更新
常用插件
- ecshop通用红包编码
很多时候,为了结合促销,必须扩展一下ecshop的红包功能。ecshop的红包...
- ecshop红包修改成满多少减
我们在长期使用ecshop的时候,我们可以发现。ecshop的红包是一个非常强...
- ecshop分类树中统计商品数
最近忙于开发其他项目,在不少朋友不断要求和催促的情况下,做出了该小...
- ecshop降价通知登记插件
ecshop降价通知登记插件,主要是为了方便某些客户,对商品价格要求比...
- ecshop购物车功能改进[插件
ecshop购物车功能改进[插件套餐]主要是我们最近开发工作和开发项目中。...