
PHP Code in Kommentaren
Heute nur ein kurzer Beitrag zu diesem Blog. Da viele schon die Erfahrung gemacht haben, dass es gar nicht so einfach ist hier in den Kommentaren Beispiel-Code zu posten, möchte ich hier kurz einige Tipps geben, wie es trotzdem funktioniert.
Das Problem ist, dass WordPress (die hier benutzte Blog-Software) in erster Linie für "normale" Blogs gemacht ist, wo Kommentare nur in ganzen Sätzen geschrieben werden. Bei PHP Performance ist aber oft Code nötig, um Anmerkungen zu machen oder zusätzliche Informationen zu geben. Und dafür muss eine Lösung gefunden werden!
Weil es allerdings in regelmäßigen Abständen Updates für WordPress gibt, möchte ich nicht am Code rumpfuschen, denn dann müsste ich beim nächsten Update diese Arbeit wiederholen (und zwar bei jedem Update).
Problemlage ist folgende: WordPress versucht spitze Klammern als HTML-Tags zu verstehen, kommt damit aber nicht klar, wenn diese Klammern eigentlich für "größer als" und "kleiner als" stehen. Die Lösung für dieses Problem ist, dass man einfach HTML-Entities benutzt:
< wird zu <
> wird zu >
Damit wird der Code auch in den Kommentaren korrekt dargestellt.
Und nun hoffe ich einfach mal, dass genug Leute diesen Kommentar lesen, damit das Kommentieren zukünfig leichter fällt und nicht mehr so viel auf WordPress geschimpft wird.
PS: Wer ein Plugin kennt, der dieses Problem umgeht, darf es hier gern in den Kommentaren schreiben.
Schlagwörter: blog, kommentare, wordpress













Denis sagt
am 19. Oktober 2007 @ 13:25
Könnte man das nicht einfach in der Comments.php vorher einbauen?
$comment = $_POST['comment']
$comment = str_replace(…)
jd sagt
am 19. Oktober 2007 @ 13:31
wie wäre es mit code-autoescape ?
damit wird einem schon ziemlich geholfen. meiner ansicht nach
admin sagt
am 19. Oktober 2007 @ 14:18
@Denis: Das meinte ich mit "rumfuschen", denn diese Änderung müsste ich ja dann bei jedem Update wieder durchführen.
@jd: Habs mal installiert. Man muss dafür den Code zwischen <code> und </code> schreiben.
Hier ein Test:
Nunja, sieht schonmal ganz gut aus. Vielleicht kennt ja jemand noch ein Plugin, das ohne Einrahmung in <code> und </code> auskommt.
jd sagt
am 19. Oktober 2007 @ 14:28
ich meine das ganze in code blöcke zu setzen wenn es code ist, halte ich für relativ intuitiv … handelt es sich doch um code den man unverfremdet darstellen will … imho
GhostGambler sagt
am 19. Oktober 2007 @ 16:05
Für gewöhnlich erwarte ich, dass mein Text den ich im Textfeld eingebe, genau so auch als Kommentar erscheint – und nicht, dass irgendeine bekloppte Software versucht da irgendwie wild was zu parsen und dann meinen halben Kommentar kürzt.
Sowas nenne ich Bug. Andere vertreiben es als stable-Software. Tjo.
Christopher sagt
am 23. Oktober 2007 @ 11:28
GhostGambler: Natürlich ist es stable-Software … würde man es so machen wie du es gerne hättest, wär's unstable-Software!
tcomic sagt
am 24. Oktober 2007 @ 08:44
@Christopher: aus der Sicht des Users hat GhostGambler auf jeden Fall recht – aus der Sicht des Programmieres aber nicht, da man den gefährlichen Input schliesslich parsen will…
Leif sagt
am 24. Oktober 2007 @ 09:22
Man soll ihn ja auch ruhig parsen. Die Frage ist, ob und wie man ihn verändert.
GhostGambler sagt
am 24. Oktober 2007 @ 16:13
"Darstellen wie im Textfeld", heißt in diesem Fall Sonderzeichen durch HTML-Entities ersetzen.
Ich weiß ja nicht, was ihr unter "darstellen wie im Textfeld" interpretiert, aber ich gehe davon aus, dass ich hier mit Leuten rede, die Ahnung davon haben was man z.B. unter XSS versteht, und dass Maßnahmen dagegen natürlich sicherlich inbegriffen sind.
Dazu zählt aber nicht, dass man die Hälfte vom Kommentar abschneidet.
Wer meint, dass das stable Software ist, soll bitte niemals irgendwas programmieren, was ich benutzen muss.
Erik sagt
am 8. November 2007 @ 20:46
Also wo soll denn da etwas abgeschnitten sein? wenn jemand einen <code>-Block schreibt, darf er ruhig davon ausgehen, dass der im Browser dann auch vorformatiert als code wieder ausgegeben wird.
Am ansprechendsten macht das imho Ed Eliot (http://www.ejeliot.com/) der im Footer auch nen Link zu seinem http://www.ejeliot.com/tools/code-formatter/ Blog Code Formatter hat.
Das Skript dahinter ist recht simpel, es zählt einfach die Leerzeichen oder Tabs am Beginn jeder Zeile, entfernt Sie und weist entsprechende CSS-Klassen zu. (zB indent1, indent2, etc.). Mein Favorit.
GhostGambler sagt
am 9. November 2007 @ 16:41
WENN man einen Code-Block schreibt.
Darum geht es aber überhaupt nicht.
bene sagt
am 28. November 2007 @ 19:25
wie wärs mit nem eigenen No-Paste service ?
admin sagt
am 28. November 2007 @ 19:40
Ähm – was ist das?
Marion sagt
am 24. Januar 2008 @ 07:40
Habe bei meinen Blogs das gleiche Problem
Hoffe das bald eine Lösung dafür gefunden wird.