TS: Kommentar wird nicht in Tabelle gezeigt

Hello,

 $file = "test.html";  
hier testest Du, ob die POST-Parameter vorhanden sind und ungleich "0" oder Leerzeichnen sind:

if(empty($_POST['name']) || empty($_POST['email']) || empty($_POST['message'])) {

 echo "<br>" . "<b>" . "<h3>*** Please enter all required fields ***</h3>" . "</b>";

} else {

hier überträgst Du die Post-Parameter in lokale Variablen, was vollkommen unnötig ist. Damit sind die lokalen Variablen dann aber gesetzt:

$name = $_POST['name']; $email = $_POST['email']; $message = $_POST['message']; }

Hier fragst Du, ob die lokalen Variablen gesetzt sind, was DU aber gerade im Block darüber selber getan hast.

if(isset($name) && isset($email) && isset($message)){ $file = array("name" => $name, "email" => $email, "message" => $message, "datetime" => date('m/d/Y h:i:s a', time()));

  }

echo "<table border='1'>"; echo "<tr><td>{$file['name']}</td><td>{$file['email']}</td><td>{$file['message']}</td></tr>";

echo "</table>";

Das Escapen mit htmlspecialchars() vor der Ausgabe in den HTML-Kontext hast Du aber immer noch nicht drin.

Liebe Grüße
Tom S.

--
Es gibt nichts Gutes, außer man tut es!
Das Leben selbst ist der Sinn.
  1. Hallo TS,

    hier testest Du, ob die POST-Parameter vorhanden sind und ungleich "0" oder Leerzeichnen sind:
    hier überträgst Du die Post-Parameter in lokale Variablen, was vollkommen unnötig ist. Damit sind die lokalen Variablen dann aber gesetzt:
    Hier fragst Du, ob die lokalen Variablen gesetzt sind, was DU aber gerade im Block darüber selber getan hast.

    Warum hast du daraus Überschriften gemacht?

    LG,
    CK

    1. Hello,

      habe ich doch gar nicht. Ich habe Kommentare in den PHP-Kontext geschrieben und dort auch richtig als Überschrift markiert. Wenn es nun Überschriften sein sollten für den nächst höheren Kontext, dann häte ich sie escaped, also mit "Slash Hash Hash Hash".

      Liebe Grüße
      Tom S.

      --
      Es gibt nichts Gutes, außer man tut es!
      Das Leben selbst ist der Sinn.
      1. @@TS

        habe ich doch gar nicht.

        Doch, doch, hast du.

        Ich habe Kommentare in den PHP-Kontext geschriebe

        Nein, du hast ### außerhalb den Code-Kontexts verwendet; damit also im Markdown-Kontext, also Überschriften erzeugt.

        Du hast den Code nicht als solchen ausgezeichnet.

        LLAP 🖖

        --
        „Wer durch Wissen und Erfahrung der Klügere ist, der sollte nicht nachgeben. Und nicht aufgeben.“ —Kurt Weidemann
      2. Hallo TS,

        habe ich doch gar nicht.

        Doch 😉

        Ich habe Kommentare in den PHP-Kontext geschrieben

        Nein. Der Code-Block war ein Block innerhalb des zitierten Inhalts. Wenn der Markdown-Parser das, was du erwartet hast, tun würde, dann müsste er kaputtes HTML erzeugen: <blockquote><code></blockquote>### foo</code>.

        Stattdessen erkennt der Parser im Blockquote keinen korrekten Code-Block (die Ende-Marker fehlen ja) und stellt ihn als Fließtext dar, statt als Code. Und dein Kommentar wird durch die drei Hashes zu einem h5 (h5 weil der Header-Index in Postings bei 3 beginnt).

        LG,
        CK

        1. Hello,

          Ok, tut mir leid. War keine Absicht.

          Dass die Antwort den PHP-Block nun unterbricht und nicht mehr abbricht war mir noch nicht wirklich präsent.

          Wie müsste ich denn die Kommentare in den PHP-Block des OP manövireren, so dass der den ganzen Block dann in seinen Editor für den PHP-Parser zurückschieben könnte?

          Wir hätten vielleicht beim Treffen so was Triviales, wie Postings erfassen und beantworten mal durchgehen sollen ;-P

          @CK hat da inzwischen schon soviele (Spezial-)Fälle abgehandelt in der Forumssoftware, dass man wirklich nicht mehr aus dem Stand weiß, was wie funktioniert und welche Auswirkungen hat.

          Liebe Grüße
          Tom S.

          --
          Es gibt nichts Gutes, außer man tut es!
          Das Leben selbst ist der Sinn.
          1. Hallo TS,

            Ok, tut mir leid. War keine Absicht.

            Ich wollte kein Blaming betreiben. Ich war vor allem neugierig, warum du das Posting so verfasst hast.

            Wie müsste ich denn die Kommentare in den PHP-Block des OP manövireren, so dass der den ganzen Block dann in seinen Editor für den PHP-Parser zurückschieben könnte?

            Du müsstest entweder die Kommentarzeichen entfernen oder deine Antwort auch als Zitat auszeichnen.

            @CK hat da inzwischen schon soviele (Spezial-)Fälle abgehandelt in der Forumssoftware, dass man wirklich nicht mehr aus dem Stand weiß, was wie funktioniert und welche Auswirkungen hat.

            Der Markdown-Parser ist eigentlich nicht besonders angepasst. Es gibt nur @en, @de, @good, @bad und durchstreichen.

            LG,
            CK

            1. hallo

              Hallo TS,

              Ok, tut mir leid. War keine Absicht.

              Ich wollte kein Blaming betreiben.

              Das wäre ja auch nur halb so wild wie Denglish-Shaming.

              1. Hallo beatovich,

                Ok, tut mir leid. War keine Absicht.

                Ich wollte kein Blaming betreiben.

                Das wäre ja auch nur halb so wild wie Denglish-Shaming.

                Da wäre ja auch kein Benefit dabei, da fehlt die Win-Win-Situation.

                LG,
                CK

            2. @@Christian Kruse

              @CK hat da …

              Kann man @CK als Synonym für @Christian Kruse anlegen?

              Der Markdown-Parser ist eigentlich nicht besonders angepasst. Es gibt nur @en, @de, @good, @bad und durchstreichen.

              nuqjatlh? Es gibt auch @tlh.

              @<lang> ist eine Abkürzung für lang="<lang>" – wobei <lang> für ein Sprachkürzel steht.

              Es gibt also nicht @good und @bad. Es gibt aber .good und .bad.

              .<name> ist eine Abkürzung für class="<name>" – wobei <name> beliebig sein kann, für good{@en} und bad{@en} gibt es aber in Verbindung mit Code (Block oder inline) vordefinierte Stile: gute Zeitenschlechte Zeiten.

              (Bei der Verwendung in Markdown wird all das in {: … } eingeschlossen.)

              LLAP 🖖

              --
              „Wer durch Wissen und Erfahrung der Klügere ist, der sollte nicht nachgeben. Und nicht aufgeben.“ —Kurt Weidemann
              1. Hallo Gunnar,

                @<lang> ist eine Abkürzung für lang="<lang>" – wobei <lang> für ein Sprachkürzel steht.

                Ja, das meinte ich, ich habe ungenau formuliert.

                Es gibt also nicht @good und @bad. Es gibt aber .good und .bad.

                Nein, es gibt good und bad 😉

                <foo>
                
                <input>
                

                .<name> ist eine Abkürzung für class="<name>"

                Das ist richtig, in diesem Fall ist aber , good bzw , bad gemeint. Und das ist eine Erweiterung des Kramdown-Parsers von mir.

                (Bei der Verwendung in Markdown wird all das in {: … } eingeschlossen.)

                s/Markdown/Kramdown/

                IALs und ALDs gibt es in Markdown nicht.

                LG,
                CK

                1. @@Christian Kruse

                  Das ist richtig, in diesem Fall ist aber , good bzw , bad gemeint.

                  Stimmt, bei Codeblöcken geht’s auch ohne Punkt und Ko mit Komma. Aber auch so wie bei Inline-Code:

                  <html>
                  

                  Und das ist eine Erweiterung des Kramdown-Parsers von mir. […] IALs und ALDs gibt es in Markdown nicht.

                  Was immer das ist, danke dafür.

                  LLAP 🖖

                  --
                  „Wer durch Wissen und Erfahrung der Klügere ist, der sollte nicht nachgeben. Und nicht aufgeben.“ —Kurt Weidemann
                  1. Hallo Gunnar,

                    Und das ist eine Erweiterung des Kramdown-Parsers von mir. […] IALs und ALDs gibt es in Markdown nicht.

                    Was immer das ist

                    „Inline Attribute List“ (auch in span form) bzw „Attribute List Definition“.

                    Edit: siehe auch block attributes und inline attributes.

                    danke dafür.

                    👍

                    LG,
                    CK

              2. Hello,

                @@Christian Kruse

                @CK hat da …

                Kann man @CK als Synonym für @Christian Kruse anlegen?

                Und @GB für @Gunnar Bittersmann? gg
                Meine Ajax-Verbindung war wohl gerade anderswo schwarz putzen :-)

                Der Markdown-Parser ist eigentlich nicht besonders angepasst. Es gibt nur @en, @de, @good, @bad und durchstreichen.

                nuqjatlh? Es gibt auch @tlh.

                @<lang> ist eine Abkürzung für lang="<lang>" – wobei <lang> für ein Sprachkürzel steht.

                Es gibt also nicht @good und @bad. Es gibt aber .good und .bad.

                .<name> ist eine Abkürzung für class="<name>" – wobei <name> beliebig sein kann, für good{@en} und bad{@en} gibt es aber in Verbindung mit Code (Block oder inline) vordefinierte Stile: gute Zeitenschlechte Zeiten.

                (Bei der Verwendung in Markdown wird all das in {: … } eingeschlossen.)

                Vielen Dank für dein kurzes Feature zu Markdown. Ich würde den Hinweis auf einen drartigen Schnellkursus unter dem ? in der Menuleiste des Eingabefensters erwarten. Würdest Du den ggf. zusammen mit @Christian Kruse verfassen?

                Glück Auf

                Tom S.

                --
                Es gibt nichts Gutes, außer man tut es!
                Das Leben selbst ist der Sinn.
                1. @@TS

                  Vielen Dank für dein kurzes Feature zu Markdown.

                  Kramdown, TIL.

                  Ich würde den Hinweis auf einen drartigen Schnellkursus unter dem ? in der Menuleiste des Eingabefensters erwarten. Würdest Du den ggf. zusammen mit @Christian Kruse verfassen?

                  Ich bin nicht sicher, ob es einen solchen Schnellkursus geben sollte. 😉

                  LLAP 🖖

                  --
                  „Wer durch Wissen und Erfahrung der Klügere ist, der sollte nicht nachgeben. Und nicht aufgeben.“ —Kurt Weidemann
                  1. Hallo Gunnar,

                    Ich würde den Hinweis auf einen drartigen Schnellkursus unter dem ? in der Menuleiste des Eingabefensters erwarten. Würdest Du den ggf. zusammen mit @Christian Kruse verfassen?

                    Ich bin nicht sicher, ob es einen solchen Schnellkursus geben sollte. 😉

                    Ich bin ziemlich sicher, dass es ihn nicht geben sollte… duck

                    LG,
                    CK

                    1. @@Christian Kruse

                      Ich bin ziemlich sicher, dass es ihn nicht geben sollte… duck

                      Mit anderen Worten: Das Feature bleibt denjenigen vorbehalten, die auch ohne Kurs herausfinden, dass und wie das geht. Fair enough.

                      LLAP 🖖

                      --
                      „Wer durch Wissen und Erfahrung der Klügere ist, der sollte nicht nachgeben. Und nicht aufgeben.“ —Kurt Weidemann
  2. Hello,

    nur nochmal zu meinem eigenen Verständnis der Forumssoftware gepostet:

     $file = "test.html";  
     
    ### hier testest Du, ob die POST-Parameter vorhanden sind und ungleich "0" oder Leerzeichnen sind:
    if(empty($_POST['name'])  || 
    		   empty($_POST['email']) || 
    		   empty($_POST['message'])) {
    				
    	   echo "<br>" . "<b>" . "<h3>*** Please enter all required fields ***</h3>" . "</b>";
    	   
    	}
    else
    	{
    ### hier überträgst Du die Post-Parameter in lokale Variablen, was vollkommen unnötig ist. Damit sind die lokalen Variablen dann aber gesetzt:
     
    	 $name = $_POST['name']; 
    	 $email = $_POST['email']; 
    	 $message = $_POST['message'];
       }
    ### Hier fragst Du, ob die lokalen Variablen gesetzt sind, was DU aber gerade im Block darüber selber getan hast. 
     
    if(isset($name) && isset($email) && isset($message)){
    	$file = array("name" => $name, "email" => $email, "message" => $message, "datetime" => date('m/d/Y h:i:s a', time()));
    	
    		}
    echo "<table border='1'>";
    echo "<tr><td>{$file['name']}</td><td>{$file['email']}</td><td>{$file['message']}</td></tr>"; 
             
      echo "</table>";
    	   
    

    Das Escapen mit htmlspecialchars() vor der Ausgabe in den HTML-Kontext hast Du aber immer noch nicht drin.

    Und was kommt jetzt dabei heraus?
    Ok, man muss darauf achten, dass keine Single-Quoting-Marker ">" dazwischen sind.

    Liebe Grüße
    Tom S.

    --
    Es gibt nichts Gutes, außer man tut es!
    Das Leben selbst ist der Sinn.
    1. @@TS

      Ok, man muss darauf achten, dass keine Single-Quoting-Marker ">" dazwischen sind.

      Oder noch besser:

      Du teilst den als Zitat übernommen Codeblock auch (schließen mit >+ ~~~, nächsten öffnen mit >+ ~~~<language>?) und schreibst deine Anmerkungen ganz normal als Text dazwischen:

      
      > ~~~php
      >  $file = "test.html";  
      > ~~~
      
      hier testest Du, ob die POST-Parameter vorhanden sind und ungleich "0" oder Leerzeichnen sind:
      
      
      > ~~~php
      > if(empty($_POST['name'])  || 
      > ~~~
      
      

      ergibt:

       $file = "test.html";  
      

      hier testest Du, ob die POST-Parameter vorhanden sind und ungleich "0" oder Leerzeichnen sind:

      if(empty($_POST['name'])  || 
      

      LLAP 🖖

      --
      „Wer durch Wissen und Erfahrung der Klügere ist, der sollte nicht nachgeben. Und nicht aufgeben.“ —Kurt Weidemann
      1. Hello,

        neeeee!

        Dann kann der Betroffene später nicht einfsch seinen PHP-Codeblock inclusive der PHP-Kommentare per Copy & Paste übernehmen, sondern muss an allen Kommentarstellen erst wieder basteln.

        Liebe Grüße
        Tom S.

        --
        Es gibt nichts Gutes, außer man tut es!
        Das Leben selbst ist der Sinn.
        1. Hallo

          neeeee!

          Dann kann der Betroffene später nicht einfsch seinen PHP-Codeblock inclusive der PHP-Kommentare per Copy & Paste übernehmen, sondern muss an allen Kommentarstellen erst wieder basteln.

          Ja, und? Das Leben ist kein Ponyschlecken. Spätestens, wenn jemand den Code aus einem Zitatblock heruas kopiert, wird diese(r) jemand mit großer Wahrscheinlichkeit sowieso an den Textblob rangehen, um die Einrückung anzupassen. Da ist das rauslöschen von Textabschnitten, die erkennbar nicht zum Code gehören, gewiss nicht zuviel verlangt.

          Tschö, Auge

          --
          Eine Kerze stand [auf dem Abort] bereit, und der Almanach des vergangenen Jahres hing an einer Schnur. Die Herausgeber kannten ihre Leser und druckten den Almanach auf weiches, dünnes Papier.
          Kleine freie Männer von Terry Pratchett