Bug: HTML - Verwirbelungen

Hier geht es um die Programmierung von Opencaching.de - User mit Erfahrungen im Bereich PHP, MySQL, HTML, JavaScript, CSS werden hier ständig gesucht
Benutzeravatar
mic@
Vereinsmitglied
Vereinsmitglied
Beiträge: 6623
Registriert: 04.12.2009, 00:31

Hallo,
ich sammle in diesem Thread mal die schrägsten HTML-Ausreisser,
also wo ein Log gleich die Umgebung durcheinanderbringt.
http://www.opencaching.de/viewcache.php?wp=OC0063&log=A#log1054413
Benutzeravatar
Slini11
Vereinsmitglied
Vereinsmitglied
Beiträge: 1164
Registriert: 17.03.2012, 13:25

Geht so ein wenig in die Richtung von http://redmine.opencaching.de/issues/83, oder ?
[url=http://www.opencaching.de/viewprofile.php?userid=159941][img]http://www.opencaching.de/statpics/DE/159941.jpg[/img][/url]
Siggiiiiii
Micro
Micro
Beiträge: 201
Registriert: 04.06.2015, 16:46

Sowohl dieser Log als auch der nächste sehen komisch aus. Frisst der Editor echt vorformatierten Text z.B. aus Word und übernimmt das?
following

[quote="Slini11"]
Geht so ein wenig in die Richtung von http://redmine.opencaching.de/issues/83, oder ?
[/quote]

Jein. Ursache war ein float:left. Wenn man den rausfiltert schränkt es die Gestaltungsmöglichkeiten im Log ein. Dieser Workaround sollte genügen.
following

[quote="Siggiiiiii"]
Sowohl dieser Log als auch der nächste sehen komisch aus. Frisst der Editor echt vorformatierten Text z.B. aus Word und übernimmt das?
[/quote]

Solche Probleme enstehen, wenn man in den HTML-Modus schaltet und HTML-Code eingibt, mit dem niemand gerechnet hatte. Es ist schon ein HTML-Filter eingebaut, aber der ist noch nicht perfekt.
following

Hier ist auch noch einer:

http://www.opencaching.de/viewcache.php?cacheid=149492&log=A#log843688

Mag sich mal jemand anders an einem Workaround versuchen?
Siggiiiiii
Micro
Micro
Beiträge: 201
Registriert: 04.06.2015, 16:46

[quote="following"]
Hier ist auch noch einer:

http://www.opencaching.de/viewcache.php?cacheid=149492&log=A#log843688

Mag sich mal jemand anders an einem Workaround versuchen?
[/quote]

Bei beiden Logs stehen im HTML-Code styles, die man scheinbar in den Editor nicht ohne weiteres reinbekommt. Ich habe Logkopien von GC nach OC mit IE nach IE und FF nach FF und IE nach FF getestet. Entweder übernimmt der Editor nur Basistags wie <em> oder <p> oder bei etwas umfangreicheren Markierungen auch die css-Klassen. Aber die Styles wurden nicht kopiert. Auch nach dem Abspeichern steht davon nichts im HTML-Quellcode.

Die css-Klassen in den wirren OC logs sind die von GC verwendeten Klassen: class="LogsTable NoBottomSpacing" class="log-row" class="FloatLeft LogDisplayRight" class="Clear LogContent" class="LogText".

Ich habe mal beim Black-Jack-Team gefragt wegen http://www.opencaching.de/viewcache.php?wp=OC0063&log=A#log1054413. Es wurde nur per Katze&Paste kopiert und im Editor wurde nur z.B. <p> übernommen. Also quasi wie bei meinen Tests.

Ich habe über Tante Google die Klassen auch im Quellcode der Testsourcen von c:geo entdeckt. Ich hatte den Verdacht, dass eine App die Logs ala GC formatiert und über die Schnittstelle nach OC schickt, aber das widespricht sich mit der Info vom Black-Jack-Team.

Jetzt frage ich mich, wo kommen die langen style-Schwänze her?
following

Wo das herkommt ist wenig relevant, darauf haben wir keinen Einfluss. Die Frage ist, was man im OC-HTML-Code drumherum bauen kann, damit es nicht mehr aus dem Rahmen rausfließt - so wie bei dem anderen Fall oben.
Zuletzt geändert von following am 05.07.2015, 16:24, insgesamt 1-mal geändert.
Siggiiiiii
Micro
Micro
Beiträge: 201
Registriert: 04.06.2015, 16:46

Und dem HTML-Purifier sagen: "Hau alles CSS weg, wir formatieren den Output selber." wäre zu radikal, oder?
dl6hbo

Haben wir nicht einen "HTML-Purifier" in unserer Software ?  Ich erinnere dunkel, dass es darum Diskussionen gab.
Wenn der "zuschlägt" und auf etwas trifft, was zu der Zeit, als er geschrieben wurde, noch nicht einmal angedacht war, könnte leicht Unsinn oder eine fehlerhafte Formatierung dabei herauskommen.

Im Übrigen sahen die Logs zu obigem Link bei mir jetzt gut aus.
Siggiiiiii
Micro
Micro
Beiträge: 201
Registriert: 04.06.2015, 16:46

[quote="dl6hbo"]
Im Übrigen sahen die Logs zu obigem Link bei mir jetzt gut aus.
[/quote]

Da wurde ja jetzt was eingebaut. :)
Benutzeravatar
mic@
Vereinsmitglied
Vereinsmitglied
Beiträge: 6623
Registriert: 04.12.2009, 00:31

[quote="following"]Die Frage ist, was man im OC-HTML-Code drumherum bauen kann, damit es nicht mehr aus dem Rahmen rausfließt - so wie bei dem anderen Fall oben.[/quote]

Was wäre, wenn man einfach ALLE möglichen Tags schliesst. Ist zwar absolut bescheuerter HTML-Code,
wenn man etwas schliesst, was nicht offen ist. Aber ich glaube, HTML verkraftet das...
Benutzeravatar
bohrsty
Administrator
Administrator
Beiträge: 1365
Registriert: 30.03.2012, 22:54

[quote="following"]
Wo das herkommt ist wenig relevant, darauf haben wir keinen Einfluss. Die Frage ist, was man im OC-HTML-Code drumherum bauen kann, damit es nicht mehr aus dem Rahmen rausfließt - so wie bei dem anderen Fall oben.
[/quote]

in diesem fall bleiben meine ich nur zwei radikalloesungen:

Code: Alles auswählen

overflow-x: hidden
was den inhalt komplett abschneidet und unlesbar macht, oder

Code: Alles auswählen

overflow-x: auto
wobei ich eher zur zweiten variante tendiere, denn dann wird der browser (falls, wie in diesem fall noetig) scrollbalken anbieten und sonst alles lassen wie es ist...

das verhindert zwar nicht, dass es an diesen stellen bei so einer html-eingabe etwas doof aussieht, wenn man scrollen muss, aber ich finde es besser als solch einen "auswuchs" wie jetzt...
gruss Nils (bohrsty)

Bild
Siggiiiiii
Micro
Micro
Beiträge: 201
Registriert: 04.06.2015, 16:46

[quote="dl6hbo"]
Haben wir nicht einen "HTML-Purifier" in unserer Software ?  Ich erinnere dunkel, dass es darum Diskussionen gab.
Wenn der "zuschlägt" und auf etwas trifft, was zu der Zeit, als er geschrieben wurde, noch nicht einmal angedacht war, könnte leicht Unsinn oder eine fehlerhafte Formatierung dabei herauskommen.[/quote]

Ich denke da eher in die Richtung (wenn ich die Funktionsweise richtig verstanden habe):

Mit $config->set('CSS.AllowedProperties', array()); alle CSS Properties rauswerfen. Dann sind die styles weg. Genauer, htmlpurifier wirft alles raus, was er kennt. Man müsste dann auch nicht dauernd den purifier updaten und Neuerfindungen nachkonfigurieren, weil man ihm sagt: Hau alles weg, was Du kennst. Bleibt ein minimales Restrisiko.

Dann bleiben class, p, br etc, also die HTML Sachen im Quellcode übrig.
Da man die fremden Klassen auch nicht braucht, könnte man über HTML.Allowed nur noch die Elemente erlauben, die auch der Editor erlaubt.
Und wenn man den nutzt erhält man scheinbar nur Standardsachen wie <p>, <br>, <b>, usw. Das ist HTML 1.0. Gab es vor 20 Jahren schon.

Damit würde man dann auch der Schnittstelle verbieten, irgendwelchen CSS-Code einzuschleusen, denn Inline CSS wie in den angegebenen Fällen in den Logs gefunden, überschreibt den CSS Code von opencaching.de.

Es gibt dazu auch eine Online-Demo:
[url=http://htmlpurifier.org/demo.php]http://htmlpurifier.org/demo.php[/url]

Hier mal das Zeug aus dem Log einfügen:

Code: Alles auswählen

<p><table class="LogsTable NoBottomSpacing" style="font-weight:inherit;font-style:inherit;font-size:12px;font-family:inherit;vertical-align:middle;border-collapse:collapse;table-layout:fixed;background-color:#ffffff;width:950px;padding:0px;margin:0px;"><tbody style="font-weight:inherit;font-style:inherit;font-size:12px;font-family:inherit;vertical-align:baseline;padding:0px;margin:0px;"><tr class="log-row" style="font-weight:inherit;font-style:inherit;font-size:12px;font-family:inherit;vertical-align:baseline;padding:0px;margin:0px;"><td style="padding-top:4px;padding-right:10px;padding-bottom:4px;padding-left:5px;font-weight:normal;font-style:inherit;font-size:12px;font-family:inherit;vertical-align:middle;border-top-width:1px;border-top-style:solid;border-top-color:#d7d7d7;border-bottom-width:1px;border-bottom-style:solid;border-bottom-color:#d7d7d7;width:935px;margin:0px;">
<div class="FloatLeft LogDisplayRight" style="padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:1em;font-weight:inherit;font-style:inherit;font-size:12px;font-family:inherit;vertical-align:baseline;width:790px;margin:0px;">
<div class="Clear LogContent" style="padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:1em;font-weight:inherit;font-style:inherit;font-size:12px;font-family:inherit;vertical-align:baseline;clear:both;border-left-width:1px;border-left-style:solid;border-left-color:#d7d7d7;margin:0px;">
<p class="LogText" style="padding-top:.5em;padding-right:0px;padding-bottom:0px;padding-left:0px;font-weight:inherit;font-style:inherit;font-size:12px;font-family:inherit;vertical-align:baseline;margin:0px;">Dieser Cache stand schon lange auf unserer Liste, hatten wir doch fleissig unsere acht Bücher umsortiert und die Möglichkeiten mitgezählt. Nun wollten wir wissen, ob wir uns auch nicht verzählt hatten. Es war alles im grünen Bereich und zur Belohnung gab es einen schönen Spaziergang durch den regenfeuchten Wald. <br />TFTC</p>
</div>
</div>
</td>
</tr></tbody></table></p>
Dann einen Haken bei AllowedPropeties rausnehmen und Felt leer lassen.
Dann bei HTML.Allowed Haken rausnehmen und p,b,br,ol,ul,i,em eintragen.
Zuletzt geändert von Siggiiiiii am 05.07.2015, 17:14, insgesamt 1-mal geändert.
Benutzeravatar
mic@
Vereinsmitglied
Vereinsmitglied
Beiträge: 6623
Registriert: 04.12.2009, 00:31

Und hier wieder ein paar Listings, die unsere Webseite ordentlich durcheinanderwirbeln:

http://www.opencaching.de/viewcache.php?cacheid=121550
http://www.opencaching.de/viewcache.php?cacheid=121549
Antworten