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 &lt;
> wird zu &gt;

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.

Jan hat 152 Beiträge geschrieben

14 Kommentare zu “PHP Code in Kommentaren

  1. admin sagt:

    @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:
    for($i=0;++$i<1000) {   echo "Hallo Welt"; }
    Nunja, sieht schonmal ganz gut aus. Vielleicht kennt ja jemand noch ein Plugin, das ohne Einrahmung in <code> und </code> auskommt.

  2. jd sagt:

    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

  3. GhostGambler sagt:

    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.

  4. tcomic sagt:

    @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…

  5. GhostGambler sagt:

    „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.

  6. Erik sagt:

    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.

Eine Antwort schreiben

Ihre E-Mail-Adresse wird nicht veröffentlicht. Benötigte Felder sind markiert mit *

You may use these HTML tags and attributes: <a href=""> <blockquote cite=""> <pre lang=""> <b> <strong> <i> <em>