Modify

Opened 3 years ago

Closed 3 years ago

Last modified 3 years ago

#2388 closed Bug/Fehler (fixed)

Warning in /admin/includes/modules/export/products_export.php

Reported by: noRiddle Owned by: somebody
Priority: normal Milestone: modified-shop-2.0.8.0
Component: Admin Version: 2.0.7.2
Keywords: Cc:
Blocked By: Blocking:

Description

Folgendes Warning erscheint beim Export:

[2022-11-10 17:46:36][warning][modified][pid:425520] WARNING found for URL: /admin/module_export.php?set=export&module=products_export&action=save
[2022-11-10 17:46:36][warning][modified][pid:425520] Trying to access array offset on value of type null in File: /PATH/admin/includes/modules/export/products_export.php on Line: 142	

War schwer nachzuvollziehen warum das Warning ausgegeben wird.
Ich denke, daß in der Funktion buildCAT() anstatt

while ($this->getParent($catID) != 0 || $catID != 0) {

dies ausreichend sein würde

while ($catID != 0) {

und das OR zu unerwarteten Ergebnissen führt.
Ich verstehe das OR logisch auch nicht, was an mir liegen kann.

Gruß,
noRiddle

Attachments (0)

Change History (3)

comment:1 by Gerhard Waldemair, 3 years ago

Zeile 142 ist aber das hier:

$this->PARENT[$catID] = $parent_data['parent_id'];

Ich gehe davon aus, dass es $parent_data betrifft und der SQL kein Ergebnis liefert.

comment:2 by Gerhard Waldemair, 3 years ago

Resolution: fixed
Status: newclosed

In 14794:

fix #2388 - check for sql result

comment:3 by anonymous, 3 years ago

Ja, ich weiß, daß in Zeile 142 steht was du schreibst.
Die Funktion zu der die Zeile gehört wird jedoch im von mir zitierten while-Loop als Condition aufgerufen. Da sie als erste Condition steht kann es passieren, daß "der SQL kein Ergebnis liefert", da $catID auch 0 sein kann.
Durch die sog. "lazy evaluation" ergibt die gesante Condtion bereits true wenn die erste Condition true ergibt und die zweite wird dann erst gar nicht geprüft. Wenn die erste jedoch bereits failed, weil dann eben der Fehler geworfen wird scheint die zweite zwar ausgeführt zu werden, der Fehler ist jedoch trotzdem vorhanden.
$catID != 0 im while reicht völlig, kann es nie zum Aufruf der Funcktion getParent() mit 0 als Parameter kommen.

...wenn ich mich nicht irre...

Gruß,
noRiddle

Modify Ticket

Action
as closed The owner will remain somebody.
The resolution will be deleted. Next status will be 'reopened'.

Add Comment


E-mail address and name can be saved in the Preferences .
 
Note: See TracTickets for help on using tickets.