[CON-1499] Programmierfehler bringen Moduloutput zum Absturz

Alle bestätigten Fehler in CONTENIDO 4.9 (erledigte Fehler werden durch geschlossene Beiträge gekennzeichnet).
Antworten
homtata
Beiträge: 1142
Registriert: Mi 14. Jan 2004, 14:41
Kontaktdaten:

[CON-1499] Programmierfehler bringen Moduloutput zum Absturz

Beitrag von homtata » So 8. Sep 2013, 14:44

Hallo,

normalerweise springt der Moduloutputcode ja von grün auf rot, wenn sich Programmierfehler einschleichen und der fehlerhafte Code ist weiterhin sichtbar. Bestimmte Kombinationen führen aber dazu, dass nach dem Speichern der Quellcode nicht mehr angezeigt wird, auch wenn er im Modulordner noch in der Output-php-Datei liegt.

Ich habe das schon mit verschiedenen Fehlern hingekriegt, aber leider habe ich nicht gleich alle protolliert. Eine Version davon habe ich in Erinnerung und kann das auch reproduzieren.

Angenommen, man möchte ein Array bearbeiten und den Value-Wert "überschreibbar" machen, geht das durch ein zusätzliches Fragezeichen vor $value, also so:

Code: Alles auswählen

 foreach ( $yourarray AS $key => &$value ) 
Setzt man das "&" versehentlich for "$key" und speichert, wird der Code wie gesagt nicht mehr zurückgelesen:

Code: Alles auswählen

 foreach ( $yourarray AS &$key => $value ) 
LG

josh
Beiträge: 156
Registriert: Do 24. Jun 2004, 09:25
Wohnort: Ahlen
Kontaktdaten:

Re: [Bug?] Programmierfehler bringen Moduloutput zum Absturz

Beitrag von josh » Di 17. Sep 2013, 18:10

Hi,

Das geht

Code: Alles auswählen

<?php
$pic = array();

$pic[] = 'test';
?>

Hier geht nichts mehr:
Fatal error: Cannot use [] for reading in /srv/www/web82/web/contenido/includes/functions.mod.php(214) : eval()'d code on line 5

Code: Alles auswählen

<?php
$pic = array();

$pic[] >= 'test';
?>
josh

Faar
Beiträge: 1915
Registriert: Sa 8. Sep 2007, 16:23
Wohnort: Brandenburg
Kontaktdaten:

Re: [Bug?] Programmierfehler bringen Moduloutput zum Absturz

Beitrag von Faar » Di 17. Sep 2013, 19:14

Aber... wer macht auch $pic[] >= 'test'; ? :shock:
Fliegt der Bauer übers Dach, ist der Wind weißgott nicht schwach.

josh
Beiträge: 156
Registriert: Do 24. Jun 2004, 09:25
Wohnort: Ahlen
Kontaktdaten:

Re: [Bug?] Programmierfehler bringen Moduloutput zum Absturz

Beitrag von josh » Di 17. Sep 2013, 21:34

Hallo Faar,

na ein verschreiberli darf nicht das Fenster unbrauchbar machen.
Da gibt es offensichtlich auch noch anderen Code den das Fenster nicht verträgt.

Im Beschreibungsfenster bringen Hochkomma auch was durcheinander.
Z.B. 'tolles Modul' bewirkt ein durcheinander im linken Frame bei den Modulen.

Das ist sicher alles nicht so tragisch weil man ja die Module in den files ändern kann.
Sollte aber doch beim Update behoben werden.

josh

dominik.ziegler
Beiträge: 437
Registriert: Do 19. Jun 2008, 09:09

Re: [Bug?] Programmierfehler bringen Moduloutput zum Absturz

Beitrag von dominik.ziegler » Mi 18. Sep 2013, 08:57

Wir werden uns das noch einmal anschauen bzgl. der Namen und dem fehlerhaften Code. Uns ist das bisher noch nicht passiert, ggf. liegt das auch an einer bestimmten Konstellation in der Server-Konfiguration.
Viele Grüße
Dominik

Faar
Beiträge: 1915
Registriert: Sa 8. Sep 2007, 16:23
Wohnort: Brandenburg
Kontaktdaten:

Re: [Bug?] Programmierfehler bringen Moduloutput zum Absturz

Beitrag von Faar » Mi 18. Sep 2013, 11:37

josh hat geschrieben:Hallo Faar,

na ein verschreiberli darf nicht das Fenster unbrauchbar machen.
Hallo josh,

im ersten Blick gesehen natürlich nicht.
Eigentlich sollte man beim Code schreiben bereits eine Fehlerbehandlung einbauen und überlegen, ob das Programm dann abbrechen soll oder weiter laufen muss und in beiden Fällen eine Meldung ausgibt.
Aber hier scheint noch keine derartige Fehlerbehandlung vorzuliegen, weil es einfach ab bricht.

Ja eigentlich...
Aber ich erwische mich auch noch ab und zu dabei, wenn es dringend ist, Code erstmal lauffähig zu machen und mir vorzunehmen, den später zu überarbeiten... was dann manchmal vergessen wird.
Und meistens merkt man erst durch Userfeedback, an was man alles nicht gedacht hat beim Programmieren.
Fliegt der Bauer übers Dach, ist der Wind weißgott nicht schwach.

dominik.ziegler
Beiträge: 437
Registriert: Do 19. Jun 2008, 09:09

Re: [Bug?] Programmierfehler bringen Moduloutput zum Absturz

Beitrag von dominik.ziegler » Mi 18. Sep 2013, 11:38

Normalerweise sollte CONTENIDO das Modul entsprechend speichern und dann die "Ampel" rot einfärben. Wieso das in dem konkreten Fall nicht funktioniert hat werden wir uns entsprechend anschauen.
Viele Grüße
Dominik

frederic.schneider_4fb
Beiträge: 967
Registriert: Do 15. Apr 2004, 17:12
Wohnort: Eschborn-Niederhöchstadt
Kontaktdaten:

Re: [Bug?] Programmierfehler bringen Moduloutput zum Absturz

Beitrag von frederic.schneider_4fb » Fr 20. Sep 2013, 11:00

Das Problem tritt in der Tat nur in ganz bestimmten Fällen auf und nicht bei allen Syntax-Fehlern. Jedenfalls liegt es am eval-Aufruf in Zeile 214 der functions.mod.php-Datei. Man kann das Problem temporär auch umgehen, indem man in Zeile 214 bspw. schreibt:

Code: Alles auswählen

$output = eval(conHtmlentities($code));
Dies ist jedoch kein Workaround, da das Htmlentities (oder auch ein SpecialChars) dazu führt, dass gar kein Code mehr gültig validiert wird. Wir werden weiter nach einer Lösung suchen, womöglich geht mittel- bis langfristig nichts daran vorbei, die gesamten Mod-Tests ohne ein eval auszuführen.
Frederic Schneider
Entwickler bei der four for business AG

frederic.schneider_4fb
Beiträge: 967
Registriert: Do 15. Apr 2004, 17:12
Wohnort: Eschborn-Niederhöchstadt
Kontaktdaten:

Re: [CON-1499] Programmierfehler bringen Moduloutput zum Abs

Beitrag von frederic.schneider_4fb » Fr 27. Sep 2013, 09:40

Ein Zwischenstand: Wir haben eine Lösung gefunden, die in der neuen Version 4.9.1 beinhaltet sein wird. Die Änderungen sind etwas umfangreicher.
Frederic Schneider
Entwickler bei der four for business AG

Antworten