Undefined index: is_rotate

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

Notice: Undefined index: is_rotate in /var/www/u0522611/data/storage3/modification/admin/model/catalog/product.php on line 232 Warning: Cannot modify header information - headers already sent by (output started at /var/www/u0522611/data/www/gel-travel.online/admin/controller/startup/error.php:34) in /var/www/u0522611/data/www/gel-travel.online/system/library/response.php on line 36

Заранее большое спасибо. Версия OpenCart 3.0.3.2

Кусок кода из файла product.php

$this->db->query("DELETE FROM " . DB_PREFIX . "product_image WHERE product_id = '" . (int)$product_id . "'");
    if (isset($data['product_image'])) {
        foreach ($data['product_image'] as $product_image) {                
                if(isset($product_image['product_option_value_id']) && $product_image['product_option_value_id']) {
                    $this->db->query("INSERT INTO " . DB_PREFIX . "product_image SET product_id = '" . (int)$product_id . "', image = '" . $this->db->escape($product_image['image']) . "', sort_order = '" . (int)$product_image['sort_order'] . "', is_rotate = '" . (int)$product_image['is_rotate'] . "', product_option_value_id = '" . (int)$product_image['product_option_value_id'] . "'");    
                } else {                        
                    $this->db->query("INSERT INTO " . DB_PREFIX . "product_image SET product_id = '" . (int)$product_id . "', image = '" . $this->db->escape($product_image['image']) . "', sort_order = '" . (int)$product_image['sort_order'] . "', is_rotate = '" . (int)$product_image['is_rotate'] . "'");
                }                
        }
    }

Ответы (1 шт):

Автор решения: Ivan Dudarev

Вам нужно проанализировать элементы массива $data['product_image'] В каком-то из них (а может быть во всех) нет ключа is_rotate. Это выводит ошибку уровня NOTICE

Notice: Undefined index: is_rotate in /var/www/u0522611/data/storage3/modification/admin/model/catalog/product.php on line 232

Т.к. Ваша конфигурация php на отображение ошибок уровня NOTICE, сообщение выводится на экран и скрипт продолжает работу. Где-то дальше скрипт пытается вывести заголовок и спотыкается (нельзя отправить заголовок, если какой-либо текст уже выведен) и сообщает об ошибке уровня WARNING

Warning: Cannot modify header information - headers already sent by (output started at /var/www/u0522611/data/www/gel-travel.online/admin/controller/startup/error.php:34) in /var/www/u0522611/data/www/gel-travel.online/system/library/response.php on line 36

Варианты решения:

  • Выключить вывод ошибок уровня NOTICE (но это путь плохишей)
  • Добавить проверку ключа is_rotate
  • Понять, почему нет ключа is_rotate и искоренить проблему
→ Ссылка