Seite 1 von 1

[Bug?] Problem beim Parsen von Layouts mit Sonderzeichen

Verfasst: Mi 16. Okt 2019, 12:18
von dermicha
Hallo zusammen,

wenn man im Mustermandanten im Head Folgendes einfügt:

Code: Alles auswählen

<meta name="description" content="Düse Düse">
bekommt man folgende (falsche) Warnung:
Tag 'html' hat keinen End-Tag (Start-Tag befindet sich in Zeile 5, Zeichen 17)
Erstaunlicherweise nur bei 2 Mal "Düse", nimmt man eines davon weg, kommt die Warnung nicht mehr.

Fügt man im Head noch Folgendes

Code: Alles auswählen

<meta name="keywords" content="Düse Düse Düse Düse">
und im Footer-div Folgendes ein:

Code: Alles auswählen

Link · Link · Link · Link · Link · Link
erhält man zusätzlich die (ebenfalls falsche) Warnmeldung:
Tag 'body' hat keinen End-Tag (Start-Tag befindet sichin Zeile 31, Zeichen 5)
Erstaunlicherweise hier auch nur ab dieser Anzahl an Bullets (bei weniger passiert es nicht).

Kann es sein, dass da irgend etwas beim Parsen des Layouts falsch läuft? Hängt es vielleicht mit diesem Problem zusammen oder hat eine ähnliche Ursache?:
viewtopic.php?f=118&t=43492

Bei einem von 4.9.12 upgedateten Mandanten führte das zusammen mit ein paar anderen Sonderzeichen im Layout sogar dazu, dass ein anderer umfassender div-Block angeblich keinen End-Tag hat und dadurch die darin enthaltenen Container nicht mehr unter den Vorlagen angezeigt und statt der Inhalte im Frontend nur die Containernamen ausgegeben werden. Das konnte ich bisher aber nicht reproduzieren.

Das upgedatete und das Test-System laufen unter PHP 7.2. Könnt Ihr das Problem bestätigen?

Danke und viele Grüße

Michael

Re: [Bug?] Problem beim Parsen von Layouts mit Sonderzeichen

Verfasst: Do 17. Okt 2019, 19:26
von Oldperl
Hallo Michael,

danke für die Bug-Meldung.
Ich kann den Fehler in CONTENIDO 4.10.0 bestätigen.

Gruß aus Franken

Ortwin

Re: [Bug?] Problem beim Parsen von Layouts mit Sonderzeichen

Verfasst: Fr 18. Okt 2019, 08:53
von dermicha
Hallo Ortwin, vielen Dank!

Re: [Bug?] Problem beim Parsen von Layouts mit Sonderzeichen

Verfasst: Mi 30. Okt 2019, 11:36
von marcus.gnass_4fb
Hallo Michael,

Ein Workaround ist, dem Layout am Ende der Datei noch einen Zeilenumbruch zu spendieren.

Der eigentliche Fix ist aber in contenido/classes/class.htmlparser.php vorzunehmen:

Code: Alles auswählen

    /**
     *
     * @return number|string
     */
    protected function _currentChar() {
        if ($this->getHtmlTextIndex() >= $this->getHtmlTextLength()) {
            return -1;
        }
        $HtmlText = $this->getHtmlText();
        // return $HtmlText{$this->getHtmlTextIndex()}; <= ist seit PHP 5.3 deprecated und funktioniert mit multibyte strings nicht korrekt
        return cString::getPartOfString($HtmlText, $this->getHtmlTextIndex(), 1);
    }
Gruß
Marcus

Re: [Bug?] Problem beim Parsen von Layouts mit Sonderzeichen

Verfasst: Mi 30. Okt 2019, 12:06
von dermicha
Hallo Marcus,

vielen Dank für die Problemlösung!

Viele Grüße
Michael