微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

警告:非法字符串偏移量 Opencart 2.1

如何解决警告:非法字符串偏移量 Opencart 2.1

我试图解决这个问题大约 5 个小时,但我不能。 问题是我有错误 “警告:C:\laragon\www\opencart\system\library\cart.PHP 中第 211 行的非法字符串偏移量'数量'”

我的代码来自 system\library\cart.PHP

elseif ($option_query->row['type'] == 'checkBox_shildik2') {
                        $value = json_decode(json_encode($value),true);
                            foreach ($value as $product_option_value_id => $data) {
                                $qnt = (int)$data['quantity'];
                                if($qnt > 0){
                                    $option_value_query = $this->db->query("SELECT pov.option_value_id,ovd.name,pov.quantity,pov.subtract,pov.price,pov.price_prefix,pov.points,pov.points_prefix,pov.weight,pov.weight_prefix FROM " . DB_PREFIX . "product_option_value pov LEFT JOIN " . DB_PREFIX . "option_value ov ON (pov.option_value_id = ov.option_value_id) LEFT JOIN " . DB_PREFIX . "option_value_description ovd ON (ov.option_value_id = ovd.option_value_id) WHERE pov.product_option_value_id = '" . (int)$product_option_value_id . "' AND pov.product_option_id = '" . (int)$product_option_id . "' AND ovd.language_id = '" . (int)$this->config->get('config_language_id') . "'");
                                    $qnt = (int)$qnt;
                                    if ($option_value_query->num_rows) {
                                        if ($option_value_query->row['price_prefix'] == '+') {
                                            $option_price += $qnt*$option_value_query->row['price'];
                                        } elseif ($option_value_query->row['price_prefix'] == '-') {
                                            $option_price -= $qnt*$option_value_query->row['price'];
                                        }

                                        if ($option_value_query->row['points_prefix'] == '+') {
                                            $option_points += $qnt*$option_value_query->row['points'];
                                        } elseif ($option_value_query->row['points_prefix'] == '-') {
                                            $option_points -=$qnt* $option_value_query->row['points'];
                                        }

                                        if ($option_value_query->row['weight_prefix'] == '+') {
                                            $option_weight += $qnt*$option_value_query->row['weight'];
                                        } elseif ($option_value_query->row['weight_prefix'] == '-') {
                                            $option_weight -= $qnt*$option_value_query->row['weight'];
                                        }

                                        if ($option_value_query->row['subtract'] && (!$option_value_query->row['quantity'] || ($option_value_query->row['quantity'] < $qnt * $cart['quantity']))) {
                                            $stock = false;
                                        }

                                        $option_data[] = array(
                                            'product_option_id'       => $product_option_id,'product_option_value_id' => $product_option_value_id,'option_id'               => $option_query->row['option_id'],'option_value_id'         => $option_value_query->row['option_value_id'],'name'                    => $qnt.' x '.$option_query->row['name'],'value'                   => $option_value_query->row['name'],'type'                    => $option_query->row['type'],'quantity'                => $option_value_query->row['quantity'],'subtract'                => $option_value_query->row['subtract'],'price'                   => $qnt*$option_value_query->row['price'],'price_prefix'            => $option_value_query->row['price_prefix'],'points'                  => $qnt*$option_value_query->row['points'],'points_prefix'           => $option_value_query->row['points_prefix'],'weight'                  => $qnt*$option_value_query->row['weight'],'weight_prefix'           => $option_value_query->row['weight_prefix']
                                        );
                                    }
                                }
                    }
                    }

所以当我点击添加到购物车时,我有意外的令牌 json。 我什至不知道如何解决这个问题,这是什么问题

211 行是 $qnt = (int)$data['quantity'];

解决方法

使用:$qnt = !empty((int)$data['quantity']) ? (int)$data['quantity'] : ' ';

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。