报错了PHP Warning: implode() [function.implode]: Invalid argume
2016-07-07 15:12 来源:www.chinab4c.com 作者:ecshop专家
各位朋友你们好,我在升级了2.7.2之后经过本地调试后把线上的服务器也更新了,可是在添加商品订单时出现了如下的错误。 PHP Warning: implode() [function.implode]: Invalid arguments passed in D:\TEST WEB SITE\admin\order.php on line 1338 具体情况是这样的:点击 添加订单(正常) 选择匿名用户 点击下一步(正常) 然后当找出商品点击 加入订单 时出现了错误。 还有一点我比较疑惑,就是在本地做测试的时候并没有这样的错误出现,那问题出现在那里了呢?
|
回答:
给下后台看下吧这边测试都是正常的 |
implode(',',$goods_attr) 这个写的一点都不科学。应该做判断.if($goods_attr) |
楼上正解,哈哈 |
我后台在本地测试的时候也是没有问题的,但上传后就出现了问题,本地和服务器上唯一不一样的地方应该是数据库里的数据。是不是由于没有找到这个变量引起的错误呢?如果你需要我可以把文件发到你邮箱里,谢谢你的关注,再次表示感谢 |
这段代码在我本地测试也是没有问题的,但上传但服务器时出现了这样的错误,会不会时这个参数服务器的数据库里没有呢?如果你需要全部的代码我可以发给你,在此对给予的关注表示感谢。 |
netaxcess你好,是不是说这个参数在我的服务器上没有调用出来呢?本地的测试机器上的数据库上有这个参数就没有发生这样的错误,而服务器上的数据库中没有这个参数导致了这样的错误?期待你的答案。 |
我的也是这个问题!不过楼上有提到加个if判断,具体怎么改呢? |
顶一下,相同的问题! |
不是这个原因,$goods_attr 前面有通过explode,可以保证是数组,即使是空的也不会出错 这里的错误实际上是$attr_value没有预定义的关系,如果为空的话又不是数组,直接implode就会出错。 应该在下面这一段代码之前加上这一句 $attr_value = array(); $sql = "SELECT attr_value ". 'FROM ' . $GLOBALS['ecs']->table('goods_attr') . "WHERE goods_attr_id in($attr_list)"; $res = $db->query($sql); $attr_value = array(); // 新增初始化 while ($row = $db->fetchRow($res)) { $attr_value[] = $row['attr_value']; } 只要while 语句之前就可以 |
我的是正解 应该是一个bug,好像2.7.3也没该过来 如果没有设置规格,或没有选择规格提交(仅靠前端js限制不一定保险)的话就会出现这个错误 |
我试了,怎么不行啊 |
非常好得到解决了 |
非常强大 |
回复netaxcess 一样的问题,按你的方法解决了,非常感谢 |
最近更新
常用插件
- ecshop注册推荐送现金插件
ecshop中的促销售功能还不是很完善,随着电子商务系统的发展和进步,...
- ecshop二次商品订购人信息
ecshop二次商品订购人信息填写插件,有时候给朋友送花,或者是送礼品的...
- ecshop会员中心订单excel倒出
ecshop会员中心订单excel倒出...
- ecshop2.7.2退换货申请插件
ecshop2.7.2退换货申请插件,主要是在 ecshop 现在的基础上,对ecshop的订单处...
- ecshop二次开发商品购买备
ecshop销售统计 插件介绍:ecshop二次开发订单销售统计和商品购买备注服...
ecshop热门问答
ecshop热门资料
ecshop图片显示不正常
ecshop英文版
ecshop男性
ecshop大小
ecshop批量打印
ecshop快餐
ecshop阿里旺旺
ecshop地理
ecshop合并订单
ecshop视频广告
ecshop光纤
ecshop看起来
zencart销售排行
ecshop重设
ecshop板子
ecshop消除
ecshop人生驿站
ecshop环境
ecshoppay_status
ecshop开发绩效
ecshop备注栏
ecshopvogue
ecshop成功
ecshop不支持JPG
ecshop购物车商品选择结算
ecshop商店
ecshop普通
ecshop文件名
ecshop敏感词过滤
ecshoppost