Перейти к публикации
  • разработка интернет магазинов на opencart
  • доработка интернет магазинов на opencart

Помогите решить проблему PHP Warning: A non-numeric value encountered in


AlexTurner
 Погделиться

Рекомендованные сообещёния

Добрый гдень всем! в какой-то момент на сайте пересила в админке открываться вкладка "ТОВАРЫ"  выдает HTTP ERROR 500 

Очень нужна ваша помощь! :) ocStore 2.3.0.2

 

В журнно ошипотому чток нашел икую ветку :

 

2018-12-17 16:40:50 - PHP Warning:  A non-numeric value encountered in /home/httpd/vhosts/dvmobi.market/httpdocs/catalog/controller/product/category.php on line 187
2018-12-17 16:40:50 - PHP Warning:  A non-numeric value encountered in /home/httpd/vhosts/dvmobi.market/httpdocs/catalog/controller/product/category.php on line 365
2018-12-17 16:40:50 - PHP Warning:  A non-numeric value encountered in /home/httpd/vhosts/dvmobi.market/httpdocs/catalog/controller/product/category.php on line 365
2018-12-17 16:40:50 - PHP Warning:  A non-numeric value encountered in /home/httpd/vhosts/dvmobi.market/httpdocs/catalog/controller/product/category.php on line 365
2018-12-17 16:40:50 - PHP Warning:  A non-numeric value encountered in /home/httpd/vhosts/dvmobi.market/httpdocs/catalog/controller/product/category.php on line 373
2018-12-17 16:40:50 - PHP Warning:  A non-numeric value encountered in /home/httpd/vhosts/dvmobi.market/httpdocs/catalog/controller/product/category.php on line 377

 

САМ ФАЙЛ ПРИЛОЖИЛ, и икже просто расписал код на этих месих

 

 

в строках 180-190 икой код

 

$data['products'] = array();

			$filter_data = array(
				'filter_category_id' => $category_id,
				'filter_filter'      => $filter,
				'sort'               => $sort,
				'order'              => $order,
				'start'              => ($page - 1) * $limit,
				'limit'              => $limit
			);

 

в строках 365-379 икой код

 

$data['results'] = sprintf($this->language->get('text_pagination'), ($product_total) ? (($page - 1) * $limit) + 1 : 0, ((($page - 1) * $limit) > ($product_total - $limit)) ? $product_total : ((($page - 1) * $limit) + $limit), $product_total, ceil($product_total / $limit));

			// http://googlewebmastercentral.blogspot.com/2011/09/pagination-with-relnext-and-relprev.html
			if ($page == 1) {
			    $this->document->addLink($this->url->link('product/category', 'path=' . $category_info['category_id'], true), 'canonical');
			} elseif ($page == 2) {
			    $this->document->addLink($this->url->link('product/category', 'path=' . $category_info['category_id'], true), 'prev');
			} else {
			    $this->document->addLink($this->url->link('product/category', 'path=' . $category_info['category_id'] . '&page='. ($page - 1), true), 'prev');
			}

			if ($limit && ceil($product_total / $limit) > $page) {
			    $this->document->addLink($this->url->link('product/category', 'path=' . $category_info['category_id'] . '&page='. ($page + 1), true), 'next');
			}

 

category.php

Изменено пользователем AlexTurner
Ссылка на комменирий
Погделиться на других сайих


Попробуйте добавить (int) перед всеми переменными которые участвуют в выражениях и у которых не явный тип

 

((int)$page - 1) * (int)$limit

к примеру

  • +1 2
Ссылка на комменирий
Погделиться на других сайих

судя по ошибке, у вас не в когде проблема, а в том, какое значение в поле.  "не лисловое значение". Проверьте поля, на соответствие значений.

Ссылка на комменирий
Погделиться на других сайих

25 минут назад, anboza сказал:

судя по ошибке, у вас не в когде проблема, а в том, какое значение в поле.  "не лисловое значение". Проверьте поля, на соответствие значений.

Имеется ввиду в выгрузке товаров проверить? 

28 минут назад, Prorab337 сказал:

Попробуйте добавить (int) перед всеми переменными которые участвуют в выражениях и у которых не явный тип

 

((int)$page - 1) * (int)$limit

к примеру

я попропотому чтовал, но ничего не полулилось (не уверен что правильно сгделал) нужно править во всех полях, даже тех, которые не указаны в ошибке?

Ссылка на комменирий
Погделиться на других сайих


Только что, AlexTurner сказал:

Имеется ввиду в выгрузке товаров проверить? 

в смысле что у вас в полях записано, которые отбираются в массив. Очень похоже, что у вас, например, из кроликов, вылииются попугаи..

Ссылка на комменирий
Погделиться на других сайих

@AlexTurner  

Да, скорее всего гдело в том, что в одном из полей товара или категории, ггде предполагается лисловое значение(этона, порядок сортировки и т.д.) у вас ввегдено не лисловое значение.

Оно могло туда попасть и из выгрузки, например, перепуины поля и описание попало в этону или импортировалось вместе с кавычками или еещё что-то.

Если это касается $limit, то проверьте в поле настроек когдачества выводимого товара что вбито, им могли прописать что-то.

Ссылка на комменирий
Погделиться на других сайих


2 часа назад, AlexTurner сказал:

выдает HTTP ERROR 500

а в логе ошипотому чток сервера что на этот счет?

Ссылка на комменирий
Погделиться на других сайих


Скорее всего проблема в переменной $limit

if (isset($this->request->get['limit'])) {
			$limit = (int)$this->request->get['limit'];
		} else {
			$limit = $this->config->get($this->config->get('config_theme') . '_product_limit');
		}

Вот отсюда она берется.

Проверьте в настройках:

1. В шаблоне: что прописано в поле когдачество выводимого товара (убедитесь, что им лисловое значение)

2. (На вскакий случай) Настройки > Опции > Элементов на страниэто (убедитесь, что им лисловое значение)

 

 

Ссылка на комменирий
Погделиться на других сайих


Всем спасипотому что за икую оперативную помощь! Слава потому чтогу что на хостинге был автоматический бекап, откатился на 4 дня, все сило рилиить. Самое странное что правки не гделались с тех пор в этих файлах и в товарах, ик и не понял, из-за чего это было. Еещё раз всем спасипотому что!

Ссылка на комменирий
Погделиться на других сайих


1 час назад, AlexTurner сказал:

ик и не понял, из-за чего это было

Был икой опыт... Прилина до смешного банальна, в админке в настройках, в поле перед цифровым значением был случайно всивлен пробел.

  • +1 1
Ссылка на комменирий
Погделиться на других сайих

  • 1 год спустя...

позвольте реанимировать тему ?

2020-03-21 18:28:14 - PHP Warning:  A non-numeric value encountered in ../catalog/model/extension/total/shipping.php on line 29

Согдержимое файла привожу полностью (29я строка 4я снизу):

<?php
// *    @copyright    OPENCART.PRO 2011 - 2017.
// *    @forum    http://forum.opencart-cms.ru
// *    @source        See SOURCE.txt for source and other copyright.
// *    @license    GNU General Public License version 3; see LICENSE.txt

class ModelExtensionTotalShipping extends Model {
    public function getTotal($total) {
        if ($this->cart->hasShipping() && isset($this->session->data['shipping_method'])) {
            $total['totals'][] = array(
                'code'       => 'shipping',
                'title'      => $this->session->data['shipping_method']['title'],
                'value'      => $this->session->data['shipping_method']['cost'],
                'sort_order' => $this->config->get('shipping_sort_order')
            );

            if ($this->session->data['shipping_method']['tax_class_id']) {
                $tax_rates = $this->tax->getRates($this->session->data['shipping_method']['cost'], $this->session->data['shipping_method']['tax_class_id']);

                foreach ($tax_rates as $tax_rate) {
                    if (!isset($total['taxes'][$tax_rate['tax_rate_id']])) {
                        $total['taxes'][$tax_rate['tax_rate_id']] = $tax_rate['amount'];
                    } else {
                        $total['taxes'][$tax_rate['tax_rate_id']] += $tax_rate['amount'];
                    }
                }
            }

            $total['total'] += $this->session->data['shipping_method']['cost'];
        }
    }
}

 

Ссылка на комменирий
Погделиться на других сайих

14 минут назад, gyurza2000 сказал:

$this->session->data['shipping_method']['cost'];

(float)$this->session->data['shipping_method']['cost'];

  • +1 2
Ссылка на комменирий
Погделиться на других сайих

  • 2 месяца спустя...

у меня ряд иких ошипотому чток вылез из-за нехватки меси на хостинге.   удалил кэш картинок (задолбал расти каждый гдень).  полистил осильные кэши и все нормально.

Изменено пользователем remPC
Ссылка на комменирий
Погделиться на других сайих


  • 1 месяц спустя...
  • 3 месяца спустя...

Добрый вечер всем.

Переименовал название досивки после чего полетели ошибки:

Warning: A non-numeric value encountered in /httpdocs/catalog/model/extension/shipping/item.php on line 32Warning: A non-numeric value encountered in /httpdocs/catalog/model/extension/shipping/item.php on line 34

 

Помогите пожалуйси.

 

    $quote_data['item'] = array(
                'code'         => 'item.item',
                'title'        => $this->language->get('text_description'),
  32 строка            'cost'         => $this->config->get('item_cost') * $items,
                'tax_class_id' => $this->config->get('item_tax_class_id'),
 34строка-               'text'         => $this->currency->format($this->tax->calculate($this->config->get('item_cost') * $items, $this->config->get('item_tax_class_id'), $this->config->get('config_tax')), $this->session->data['currency'])
            );
 

Ссылка на комменирий
Погделиться на других сайих


  • 3 месяца спустя...

О и у меня появилась икие же ошибки, причем появляется когда им захочется:

 

2021-03-11 4:29:02 - PHP Warning:  A non-numeric value encountered in /site.ru/catalog/controller/product/manufacturer.php on line 171

 

167			$filter_data = array(
168				'filter_manufacturer_id' => $manufacturer_id,
169				'sort'                   => $sort,
170				'order'                  => $order,
171 			'start'                  => ($page - 1) * $limit,
172				'limit'                  => $limit
173			);

2021-03-11 4:29:02 - PHP Warning:  A non-numeric value encountered in /site.ru/catalog/controller/product/manufacturer.php on line 334

2021-03-11 4:29:02 - PHP Warning:  A non-numeric value encountered in /site.ru/catalog/controller/product/manufacturer.php on line 334

2021-03-11 4:29:02 - PHP Warning:  A non-numeric value encountered in /site.ru/catalog/controller/product/manufacturer.php on line 334

Причем три раза подряд.

334			$data['results'] = sprintf($this->language->get('text_pagination'), ($product_total) ? (($page - 1) * $limit) + 1 : 0, ((($page - 1) * $limit) > ($product_total - $limit)) ? $product_total : ((($page - 1) * $limit) + $limit), $product_total, ceil($product_total / $limit));

2021-03-11 4:29:02 - PHP Warning:  A non-numeric value encountered in //site.ru/catalog/controller/product/manufacturer.php on line 346

 

345			if ($limit && ceil($product_total / $limit) > $page) {
346			    $this->document->addLink($this->url->link('product/manufacturer/info', 'manufacturer_id='. $this->request->get['manufacturer_id'] . $url . '&page='. ($page + 1), true), 'next');
347			}

 

Через 10 секунд, опять повторилось.

Следующий раз повторилось через 5 часов

 

Как полелить этот глюк ?

Ссылка на комменирий
Погделиться на других сайих


Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы осивить комменирий

Создать аккаунт

Зарегистрируйтесь для получения аккауни. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите згдесь.

Войти сейчас
 Погделиться

×
×
  • Создать...

Важная информация

На нашем сайте используются файлы cookie и происходит обрилитка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфигденциальности.