Seite 1 von 1

Errormeldung in templates 2020

BeitragVerfasst: Mo 19. Apr 2021, 01:37
von Werner
Hallo,
ich hatte die config auf errormeldung 1 gestellt und sah dann folgende Meldung:

: sizeof(): Parameter must be an array or an object that implements Countable in
/home/weby8zbfs/html/Shop2.4/templates/standard_2020/website/index.phtml
on line
712


Zeile 712 sieht dann so aus:

<!-- Bestseller -->
<?php if (sizeof($tpl_bestsellerarray)) { ?>

Re: Errormeldung in templates 2020

BeitragVerfasst: Mo 19. Apr 2021, 07:34
von Magnus
Habs jetzt nicht ausprobiert, aber wenn die Zeile so aussähe dürfter die Meldung weg sein.
Code: Alles auswählen
<?php if ( isset($tpl_bestsellerarray) && sizeof($tpl_bestsellerarray)>0 ) { ?>


Da wird zuerst geprüft, ob das Array überhaupt existiert und wenn ja ob die Zahl der Einträge größer 0 ist
Die Meldung, die du siehst ist übrigens "nur" ein Warning, verursacht also im Moment keinen Fehler. Stört aber, wenn man Fehler sucht und könnte sich in zukünftigen php-Versionen oder PHP Einstellungen anders verhalten.

viele Grüße
Magnus

Re: Errormeldung in templates 2020

BeitragVerfasst: Mo 19. Apr 2021, 17:34
von bonsai
Ich hatte diese Warnmeldungen auch. Ich hab das aber so gelöst und funktioniert in den Versionen bis 2.6 Ob darüber auch hab ich noch keine Ahnung und auch noch keine Zeit gehabt, das zu analysieren.
Also die Variable ist austauschbar, soll nur als Beispiel dienen

(Original)
if (sizeof($gm_tree) > 0) {

geändert in:
if (sizeof((array)$gm_tree)) > 0) {

Das selbe "Problem" ist aber auch bei count und funktioniert gleich mit dem Array

(Original)
count($tplBilderArray) > 0):?>

geändert in:
(count((array)$tplBilderArray)) > 0):?>

Re: Errormeldung in templates 2020

BeitragVerfasst: Mo 19. Apr 2021, 19:04
von Werner
Hallo,

danke für Eure Tipps.

Ich hatte die config heute wieder auf 1 gestellt und wollte den Fehler oder besser die warning noch mal sehen, leider war sie verschwunden, warum auch immer...

Dafür habe ich aber wieder andere warnings gefunden:

admin bei grunddaten
Warning: Use of undefined constant imagecopyresampled - assumed 'imagecopyresampled' (this will throw an Error in a future version of PHP) in /home/weby8zbfs/html/Shop2.4/admin/admin_neu/themes/einstellungen/editieren_grunddaten_tab.inc.php on line 371

dies ist die Zeile:

if(function_exists(imagecopyresampled) && $ShopeinstellungenObject->bildupload_aktiv == '1'){

Warning: Use of undefined constant imagecreatetruecolor - assumed 'imagecreatetruecolor' (this will throw an Error in a future version of PHP) in /home/weby8zbfs/html/Shop2.4/admin/artikel/editieren_grunddaten.php on line 1456

dies ist die Zeile;

<?php if($ShopeinstellungenObject->bildupload_aktiv == '1' && function_exists(imagecreatetruecolor)){?>

neuen navigationspunkt hinzufügen
Warning: count(): Parameter must be an array or an object that implements Countable in /home/weby8zbfs/html/Shop2.4/includes/functions.mod.cms.inc.php on line 1404

dies ist die Zeile:

KategorieCounter = count($KategorieArray);

Das es alles nur warnings sind wie Magnus schon anmerkte ist mir schon klar und bei der ganzen Komplexität und Menge des codes nicht verwunderlich, daß da evtl. Fehler drin sind, die Meldungen stören dann bei der richtigen echten Fehlersuche...

z.B. das Registrieren und Passwort vergessen funktioniert nicht oder besser nicht mehr, warum auch immer nicht...

Fatal error: Uncaught Error: Call to undefined function SendUserMail() in /home/weby8zbfs/html/Shop2.4/themes/user/passwortvergessen.php:40 Stack trace: #0 {main} thrown in /home/weby8zbfs/html/Shop2.4/themes/user/passwortvergessen.php on line 40

dies ist die Zeile:

SendUserMail($KundenObject, 2);

Re: Errormeldung in templates 2020

BeitragVerfasst: Di 20. Apr 2021, 19:18
von Magnus
@ Bonsai: Das mit dem array() hat mich auf die richtig gute Version gebracht:
Code: Alles auswählen
<?php if ( is_array($tpl_bestsellerarray) && sizeof($tpl_bestsellerarray)>0 ) { ?>


Genau für das ist is_array ja da, es prüft ob die Variable ein Array ist. Wenn dann danach noch die Zahl der Einträge geprüft wird, kann an der Stelle nicht mehr viel schief gehen.

viele Grüße
Magnus

Re: Errormeldung in templates 2020

BeitragVerfasst: Mi 12. Mai 2021, 10:32
von mmaass
Wir haben im System zwar die Warnhinweise extrem reduzieren können aber auftreten tun sie in so einem komplexen System dennoch.
Solange es Warnhinweise sind, sind sie nicht besonders relevant.

Das Use of undefined constant imagecreatetruecolor kann aber auch schon durch das hochladen eines kaputten oder falschen Files ausgelöst werden.