Errormeldung in templates 2020

Alle Fragen zur aktuellen Randshop Version 3.x, ob Design, rechtliches oder einfach allgemeines können hier gepostet werden.

Moderatoren: Magnus, mmaass, ablass

Errormeldung in templates 2020

Beitragvon Werner » Mo 19. Apr 2021, 01:37

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)) { ?>
Werner
 
Beiträge: 294
Registriert: Mi 22. Jun 2011, 13:18

Re: Errormeldung in templates 2020

Beitragvon Magnus » Mo 19. Apr 2021, 07:34

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
Magnus
 
Beiträge: 1602
Registriert: Mi 21. Feb 2007, 21:10

Re: Errormeldung in templates 2020

Beitragvon bonsai » Mo 19. Apr 2021, 17:34

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):?>
Versionen im Gebrauch: 2.6/3.0 & 3.1 mit Frontend 2.6
https://pc-krug.de <- Hilfe in Sachen randshop
ac-bad-saeckingen.de <- die "Shopversion" ohne Shop
bonsai
 
Beiträge: 773
Registriert: Mo 9. Jul 2007, 21:14
Wohnort: wo wohl, DAHEIM

Re: Errormeldung in templates 2020

Beitragvon Werner » Mo 19. Apr 2021, 19:04

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);
Werner
 
Beiträge: 294
Registriert: Mi 22. Jun 2011, 13:18

Re: Errormeldung in templates 2020

Beitragvon Magnus » Di 20. Apr 2021, 19:18

@ 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
Magnus
 
Beiträge: 1602
Registriert: Mi 21. Feb 2007, 21:10

Re: Errormeldung in templates 2020

Beitragvon mmaass » Mi 12. Mai 2021, 10:32

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.
www.randshop.com
Entwicklung - Anpassung - Support
Benutzeravatar
mmaass
Admin
 
Beiträge: 5203
Registriert: Di 24. Aug 2004, 17:44
Wohnort: Berlin


Zurück zu Allgemeines / Installation / Hilfe

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast