Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

Не меняется количество товара в данных


Recommended Posts

Здравствуйте! Сначала всё прекрасно менялось, но сейчас не могу изменить количество товара. Меняю, нажимаю "сохранить". Показывается успешный результат. Потом проверяю - как было 50, так и осталось. Пробовал и 51 и 99 и 1000, ничего не меняется. 

 

В чём может быть проблема? 

 

Спасибо!

Надіслати
Поділитися на інших сайтах


Только количество не меняется?

Или любые данные а этой вкладке?

в логе ошибок в момент сохранения товара, какие-то ошибки появляются?

Мало данных для того чтобы вам сразу так подсказали.

Надіслати
Поділитися на інших сайтах

В 30.10.2019 в 23:07, pashast сказал:

Только количество не меняется?

Или любые данные а этой вкладке?

в логе ошибок в момент сохранения товара, какие-то ошибки появляются?

Мало данных для того чтобы вам сразу так подсказали.

 

Спасибо за уточнения! Обнаружил, что вообще никакие данные в этой вкладке не меняются. 

 

Ошибка выдаётся следующая: "PHP Warning:  Cannot modify header information - headers already sent by (output started at / (далее путь)

 

Путь указывает на файл response.php на 12 строку. 

 

Там стоит такой код: 

<?php
class Response {
    private $headers = array();
    private $level = 0;
    private $output;

    public function addHeader($header) {
        $this->headers[] = $header;
    }

    public function redirect($url, $status = 302) {
        header('Location: ' . str_replace(array('&', "\n", "\r"), array('&', '', ''), $url), true, $status);
        exit();
    }

12-я строчка - это 

 

header('Location: ' . str_replace(array('&', "\n", "\r"), array('&', '', ''), $url), true, $status);

Я прочёл, что там могут быть лишние пробелы, и тд. Но пробелов там лишних вроде нет, и потом откуда они там возьмутся, если сначала всё работало, и потом я ничего там не менял вообще. 

Змінено користувачем andrey2000
Надіслати
Поділитися на інших сайтах


4 часа назад, andrey2000 сказал:

 

Спасибо за уточнения! Обнаружил, что вообще никакие данные в этой вкладке не меняются. 

 

Ошибка выдаётся следующая: "PHP Warning:  Cannot modify header information - headers already sent by (output started at / (далее путь)

 

Я прочёл, что там могут быть лишние пробелы, и тд. Но пробелов там лишних вроде нет, и потом откуда они там возьмутся, если сначала всё работало, и потом я ничего там не менял вообще. 

ну дело то не в этом файле. Просто где-то до редиректа у вас выводятся какие-то символы. И где-то таки вы что-то поменяли. Может просто какие-то файлы в кодировке UTF-8 with BOM.

Но это предупреждение вроде не должно влить на процедуру сохранения товара, т.к. редирект происходит уже после вызова $this->model_catalog_product->editProduct($this->request->get['product_id'], $this->request->post);

какие еще ошибки в логе?

Надіслати
Поділитися на інших сайтах

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

какие еще ошибки в логе?

 

PHP Notice:  Undefined index: model in .../public_html/admin/model/catalog/product.php on line 4

1. <?php
2. class ModelCatalogProduct extends Model {
3.    public function addProduct($data) {
4.        $this->db->query("INSERT INTO " . DB_PREFIX . "product SET model = '" . $this->db->escape($data['model']) . "', sku = '" . $this->db->escape($data['sku']) . "', upc = '" . $this->db->escape($data['upc']) . "', ean = '" . $this->db->escape($data['ean']) . "', jan = '" . $this->db->escape($data['jan']) . "', isbn = '" . $this->db->escape($data['isbn']) . "', mpn = '" . $this->db->escape($data['mpn']) . "', location = '" . $this->db->escape($data['location']) . "', quantity = '" . (int)$data['quantity'] . "', minimum = '" . (int)$data['minimum'] . "', subtract = '" . (int)$data['subtract'] . "', stock_status_id = '" . (int)$data['stock_status_id'] . "', date_available = '" . $this->db->escape($data['date_available']) . "', manufacturer_id = '" . (int)$data['manufacturer_id'] . "', shipping = '" . (int)$data['shipping'] . "', price = '" . (float)$data['price'] . "', points = '" . (int)$data['points'] . "', weight = '" . (float)$data['weight'] . "', weight_class_id = '" . (int)$data['weight_class_id'] . "', length = '" . (float)$data['length'] . "', width = '" . (float)$data['width'] . "', height = '" . (float)$data['height'] . "', length_class_id = '" . (int)$data['length_class_id'] . "', status = '" . (int)$data['status'] . "', tax_class_id = '" . (int)$data['tax_class_id'] . "', sort_order = '" . (int)$data['sort_order'] . "', date_added = NOW()");

        $product_id = $this->db->getLastId();

 

Ещё эта ошибка, она перед той, которую я указал, сразу шла. Больше ошибок нет. Заранее спасибо!

 

Четвертая строчка, в ней ошибка. Она пронумерована. 

Надіслати
Поділитися на інших сайтах


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

 

PHP Notice:  Undefined index: model in .../public_html/admin/model/catalog/product.php on line 4


1. <?php
2. class ModelCatalogProduct extends Model {
3.    public function addProduct($data) {
4.        $this->db->query("INSERT INTO " . DB_PREFIX . "product SET model = '" . $this->db->escape($data['model']) . "', sku = '" . $this->db->escape($data['sku']) . "', upc = '" . $this->db->escape($data['upc']) . "', ean = '" . $this->db->escape($data['ean']) . "', jan = '" . $this->db->escape($data['jan']) . "', isbn = '" . $this->db->escape($data['isbn']) . "', mpn = '" . $this->db->escape($data['mpn']) . "', location = '" . $this->db->escape($data['location']) . "', quantity = '" . (int)$data['quantity'] . "', minimum = '" . (int)$data['minimum'] . "', subtract = '" . (int)$data['subtract'] . "', stock_status_id = '" . (int)$data['stock_status_id'] . "', date_available = '" . $this->db->escape($data['date_available']) . "', manufacturer_id = '" . (int)$data['manufacturer_id'] . "', shipping = '" . (int)$data['shipping'] . "', price = '" . (float)$data['price'] . "', points = '" . (int)$data['points'] . "', weight = '" . (float)$data['weight'] . "', weight_class_id = '" . (int)$data['weight_class_id'] . "', length = '" . (float)$data['length'] . "', width = '" . (float)$data['width'] . "', height = '" . (float)$data['height'] . "', length_class_id = '" . (int)$data['length_class_id'] . "', status = '" . (int)$data['status'] . "', tax_class_id = '" . (int)$data['tax_class_id'] . "', sort_order = '" . (int)$data['sort_order'] . "', date_added = NOW()");

        $product_id = $this->db->getLastId();

 

Ещё эта ошибка, она перед той, которую я указал, сразу шла. Больше ошибок нет. Заранее спасибо!

 

Четвертая строчка, в ней ошибка. Она пронумерована. 

проверьте есть ли в шаблоне admin/view/template/catalog/product_form.tpl поле для заполнения модели. Может вы его удалили оттуда или закомментировали

              <div class="form-group required">
                <label class="col-sm-2 control-label" for="input-model"><?php echo $entry_model; ?></label>
                <div class="col-sm-10">
                  <input type="text" name="model" value="<?php echo $model; ?>" placeholder="<?php echo $entry_model; ?>" id="input-model" class="form-control" />
                  <?php if ($error_model) { ?>
                  <div class="text-danger"><?php echo $error_model; ?></div>
                  <?php } ?>
                </div>
              </div>

 

Надіслати
Поділитися на інших сайтах

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

проверьте есть ли в шаблоне admin/view/template/catalog/product_form.tpl поле для заполнения модели. Может вы его удалили оттуда или закомментировали

 

 

Нашёл действительно задокументированный блок, вот этот:

 

   <div class="form-group required">
                <label class="col-sm-2 control-label" for="input-model"><?php echo $entry_model; ?></label>
                <div class="col-sm-10">
                  <input type="text" name="model" value="<?php echo $model; ?>" placeholder="<?php echo $entry_model; ?>" id="input-model" class="form-control" />
                  <?php if ($error_model) { ?>
                  <div class="text-danger"><?php echo $error_model; ?></div>
                  <?php } ?>
                </div>
              </div>!-->

 

Но я его раздокументировал, а проблема всё равно осталась. И кеш модификаторов обновил, и куки удалил, и ctrl-f5 обновил. 

 

Всё равно не меняется. И не понимаю, зачем я его документировал, либо пытался упростить форму заказа по инструкции, либо это модификатор какой-то без меня сделал. 

 

Кстати, обнаружил, что если делаешь новый товар, то данные заполняются нормально, всё сохраняется. А вот когда пытаешься в новом товаре изменить эти данные, то уже не меняется.

 

Вспомнил, что делал изменения по этой инструкции: https://webkab.ru/udalit-pole-model-opencart/

Змінено користувачем andrey2000
Надіслати
Поділитися на інших сайтах


Делаю вывод, что модель тут не при чём. Ошибки были старые. Да и действительно, как модель могла повлиять на изменения других полей?

Надіслати
Поділитися на інших сайтах


Люди, может кто знает? Ещё раз проблема: во вкладке "Данные" ни одно поле не сохраняется. Ошибок, как выяснилось, при этом не возникает. В результате написано "Данные успешно сохранены". 

 

Может с базой данных может быть проблема? 

 

В какой таблице вкладка "Данные" хранится? Хоть посмотрю - может данные добавляются, но не выводятся?

 

Нет, посмотрел, в базе данных тоже не меняется значение

Змінено користувачем andrey2000
Надіслати
Поділитися на інших сайтах


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

Делаю вывод, что модель тут не при чём. Ошибки были старые. Да и действительно, как модель могла повлиять на изменения других полей?

 

повлияло что-то, что вы скорее всего удалили из формы и в результате получили некорректный SQL-запрос

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

Ошибок, как выяснилось, при этом не возникает. В результате написано "Данные успешно сохранены". 

 

окстор всегда так пишет, потому что не проверяются результаты выполнения запроса. Ошибки смотреть нужно в логах. Вы 24-го его отключили? если да, то включите, попытайтесь отредактировать товар и посмотрите что там

Надіслати
Поділитися на інших сайтах

16 минут назад, Blast сказал:

окстор всегда так пишет, потому что не проверяются результаты выполнения запроса. Ошибки смотреть нужно в логах. Вы 24-го его отключили? если да, то включите, попытайтесь отредактировать товар и посмотрите что там

 

Я не отключал логи, но почему-то они не отображаются. В настройках вроде бы запись ошибок включена. Указан файл error.log. А где он находится? Там попробую посмотреть

Надіслати
Поділитися на інших сайтах


17 минут назад, andrey2000 сказал:

 

Я не отключал логи, но почему-то они не отображаются. В настройках вроде бы запись ошибок включена. Указан файл error.log. А где он находится? Там попробую посмотреть

это логи опенкарта. туда не все ошибки пишутся

вам нужен лог PHP. Обычно папку с логами можно найти на уровень выше папки с сайтом, если зайти по FTP. Или через панель управления хостингом. Ну или у хостера запросить

Змінено користувачем Blast
Надіслати
Поділитися на інших сайтах

13 минут назад, Blast сказал:

Ну или у хостера запросить

 

У хостера запросил, логи примерно такие: 

 

Nov  1 06:42:40 vh202 apache_access: vashpiknik.ru 195.170.35.50 - - [01/Nov/2019:06:42:40 +0300] "GET /admin/index.php?route=catalog/product&token=8sidTCcJ7pUMzL8sSS0Ja8H HTTP/1.0" 200 50035 "http://vashpiknik.ru/admin/index.php?route=catalog/product/edit&token=8sidTCcJ7pUMzL8sSS0Ja8H&product_id=50" "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.120 Safari/537.36"

Nov  1 06:42:43 vh202 apache_access: vashpiknik.ru 195.170.35.50 - - [01/Nov/2019:06:42:42 +0300] "GET /admin/index.php?route=catalog/product/edit&token=8sidTCcJ7pUMzL8sSS0Ja8H&product_id=61 HTTP/1.0" 200 94092 "http://vashpiknik.ru/admin/index.php?route=catalog/product&token=8sidTCcJ7pUMzL8sSS0Ja8H" "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.120 Safari/537.36"

Надіслати
Поділитися на інших сайтах


12 минут назад, andrey2000 сказал:

 

У хостера запросил, логи примерно такие: 

 

Nov  1 06:42:40 vh202 apache_access: vashpiknik.ru 195.170.35.50 - - [01/Nov/2019:06:42:40 +0300] "GET /admin/index.php?route=catalog/product&token=8sidTCcJ7pUMzL8sSS0Ja8H HTTP/1.0" 200 50035 "http://vashpiknik.ru/admin/index.php?route=catalog/product/edit&token=8sidTCcJ7pUMzL8sSS0Ja8H&product_id=50" "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.120 Safari/537.36"

Nov  1 06:42:43 vh202 apache_access: vashpiknik.ru 195.170.35.50 - - [01/Nov/2019:06:42:42 +0300] "GET /admin/index.php?route=catalog/product/edit&token=8sidTCcJ7pUMzL8sSS0Ja8H&product_id=61 HTTP/1.0" 200 94092 "http://vashpiknik.ru/admin/index.php?route=catalog/product&token=8sidTCcJ7pUMzL8sSS0Ja8H" "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.120 Safari/537.36"

это access логи, а нужны error

Надіслати
Поділитися на інших сайтах

3 часа назад, Blast сказал:

это access логи, а нужны error

 

Написали, что нет никаких записей ошибки в логах

 

Хотя бы не подскажете, в каких файлах искать проблему? Я проверил - до базы данных уже не доходит изменение, значит проблема в отправке формы

Надіслати
Поділитися на інших сайтах


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

 

Написали, что нет никаких записей ошибки в логах

 

Хотя бы не подскажете, в каких файлах искать проблему? Я проверил - до базы данных уже не доходит изменение, значит проблема в отправке формы

проверьте какой запрос формируется. В файле /admin/model/catalog/product.php в методе editProduct в строке

$this->db->query("UPDATE " . DB_PREFIX . "product SET...

замените $this->db->query  на echo и добавьте exit(); Должно получиться примерно так

echo("UPDATE " . DB_PREFIX . "product SET...

exit();

 

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

Данная конструкция выведет вам текст получившегося запроса. кидайте его потом сюда. Ну также можно и другие запросы проверять.

 

До файла модели отрабатывает контроллер /admin/controller/catalog/product.php

var_dump в помощь для вывода дампа переменных в браузер

 

Надіслати
Поділитися на інших сайтах

В 02.11.2019 в 00:07, Blast сказал:

проверьте какой запрос формируется.

 

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

 

Когда я её сделал активной, сохранения стали работать... Так что Вы мне очень помогли.

 

Я только одного не понимаю - эта строка отвечает за model (хоть и в инструкции не было - убрать эту строку, может раньше убирал, не знаю). При чём тут сохранение других пунктов, как она могла повлиять на другие функции?

 

А так спасибо огромное! Всё стало сохраняться....

Надіслати
Поділитися на інших сайтах


15 часов назад, andrey2000 сказал:

 

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

 

Когда я её сделал активной, сохранения стали работать... Так что Вы мне очень помогли.

 

Я только одного не понимаю - эта строка отвечает за model (хоть и в инструкции не было - убрать эту строку, может раньше убирал, не знаю). При чём тут сохранение других пунктов, как она могла повлиять на другие функции?

 

А так спасибо огромное! Всё стало сохраняться....

наверное все-таки закомментирована, а не задокументирована.

Эта строка отвечает за сохранение всех основных полей товара, а не только модели. Поэтому и не работало

Надіслати
Поділитися на інших сайтах

10 минут назад, Blast сказал:

наверное все-таки закомментирована, а не задокументирована.

 

)) Простите, закомментирована ))

 

Интересно, почему же я её закомментировал, в инструкции этого не было ))

 

Спасибо ещё раз! Буду изучать мат.часть )))

Надіслати
Поділитися на інших сайтах


Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку

×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.