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

Ошибки при редактировании заказа


Recommended Posts

При редактировании заказа (добавить товар к заказу) в Журнале ошибок появляются ошибки:

2016-06-28 22:35:33 - PHP Notice:  Undefined index: sort in сайт/admin/model/catalog/product.php on line 428
2016-06-28 22:35:33 - PHP Notice:  Error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'DESC LIMIT 0,5' at line 1<br />Error No: 1064<br />SELECT * FROM product p LEFT JOIN product_description pd ON (p.product_id = pd.product_id) WHERE pd.language_id = '1' AND pd.name LIKE '%Костюм Трен%' GROUP BY p.product_id ORDER BY  DESC LIMIT 0,5 in сайт/system/library/db/mysqli.php on line 41
2016-06-28 22:35:33 - PHP Notice:  Trying to get property of non-object in сайт/admin/model/catalog/product.php on line 451
2016-06-28 22:35:33 - PHP Warning:  Invalid argument supplied for foreach() in сайт/admin/controller/catalog/product.php on line 1498

Последние изменения на сайте:

- установили модуль симпла (малая вероятность что из-за него)

- установили модуль Разные цены для групп покупателей https://opencartforum.com/topic/55672-%D1%80%D0%B0%D0%B7%D0%BD%D1%8B%D0%B5-%D1%86%D0%B5%D0%BD%D1%8B-%D0%B4%D0%BB%D1%8F-%D0%B3%D1%80%D1%83%D0%BF%D0%BF-%D0%BF%D0%BE%D0%BA%D1%83%D0%BF%D0%B0%D1%82%D0%B5%D0%BB%D0%B5%D0%B9/

 

ocStore 2.1.0.2.1 из коробки

из других модулей на сайте только https://opencartforum.com/files/file/1471-%D0%BD%D0%BE%D0%B2%D1%8B%D0%B5-%D0%BF%D0%BE%D1%81%D1%82%D1%83%D0%BF%D0%BB%D0%B5%D0%BD%D0%B8%D1%8F-%D0%B7%D0%B0-n-%D0%B4%D0%BD%D0%B5%D0%B9-1513-155-21/

 

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


там должно быть что-то

if (isset($data['sort']) && in_array($data['sort'], $sort_data)) {
            $sql .= " ORDER BY " . $data['sort'];

Т.е. ошибки не должно!

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

там должно быть что-то

if (isset($data['sort']) && in_array($data['sort'], $sort_data)) {
            $sql .= " ORDER BY " . $data['sort'];
Т.е. ошибки не должно!

 

if (isset($data['sort']) && in_array($data['sort'], $sort_data)) {

$sql .= " ORDER BY p.date_added";

} else {

$sql .= " ORDER BY " . $data['sort'];

}

красным выделила 428 строку

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


if (isset($data['sort']) && in_array($data['sort'], $sort_data)) {

$sql .= " ORDER BY p.date_added";

} else {

$sql .= " ORDER BY " . $data['sort'];

}

красным выделила 428 строку

Это и есть ошибка.

 

По идее должно быть:

if (isset($data['sort']) && in_array($data['sort'], $sort_data)) {
  $sql .= " ORDER BY " . $data['sort'];
} else {
  $sql .= " ORDER BY p.date_added";
}

А так как написано у вас это не только ошибка, но ещё и уязвимость.

Т.к. если в $data['sort'] заинжектить запрос, то не выполнится условие in_array($data['sort'], $sort_data) но выполнится то что в else (а там включение в запрос без экранирования).

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

Это и есть ошибка.

 

По идее должно быть:

if (isset($data['sort']) && in_array($data['sort'], $sort_data)) {
  $sql .= " ORDER BY " . $data['sort'];
} else {
  $sql .= " ORDER BY p.date_added";
}

А так как написано у вас это не только ошибка, но ещё и уязвимость.

Т.к. если в $data['sort'] заинжектить запрос, то не выполнится условие in_array($data['sort'], $sort_data) но выполнится то что в else (а там включение в запрос без экранирования).

Спасибо..Но если сменить запрос, то убирается сортировка товаров в админке по дате((((

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


то убирается сортировка товаров в админке по дате((((

 

Как это?

 

if (isset($data['sort']) && in_array($data['sort'], $sort_data)) {

 

Это проверка на условие

 

А это если не выполняются условия

 

$sql .= " ORDER BY p.date_added";

 

Т.е по умолчанию - сортировка по дате добавления

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

Как это?

 

if (isset($data['sort']) && in_array($data['sort'], $sort_data)) {

 

Это проверка на условие

 

А это если не выполняются условия

 

$sql .= " ORDER BY p.date_added";

 

Т.е по умолчанию - сортировка по дате добавления

 

исправила в файле на:

if (isset($data['sort']) && in_array($data['sort'], $sort_data)) {
  $sql .= " ORDER BY " . $data['sort'];
} else {
  $sql .= " ORDER BY p.date_added";
}

сортировка идет по алфавиту.

Что-то я совсем запуталась((((

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


вы по себе судите? Я все прекрасно понимаю.. и уже все сделала.. Не считайте себя умнее других))

Тема закрыта!

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


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

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

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

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

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

Вхід

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

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

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

Important Information

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