RaidSupport: tiefergestellte Zeichen in HTML

Hallo,

folgendes Problem:

Mittels php wird in einem Feld ein Text eingegeben, in einer Datenbank gespeichert und bei Abruf als HTML angezeigt.

Nun musste ich bei Eingabe der Zeichen < und > diese in &lg usw. umwandeln, da sie sonst zur verunstaltung des Eintrags in HTML-Darstellung führten.

Aus diesem Grund kann ich den <sub>-Befehl auch nicht anwenden. Hat vieleicht jemand eine Idee wie ich trotzdem tiefergestellte Zeichen darstellen könnte?

Ich danke euch schon mal im Voraus für eure Bemühungen!!

Gruß,
Raid

  1. Hallo Raid,

    zufaelligerweise arbeite ich an einem aehnlichen Projekt. Bei mir muss ich, ausser den Umlauten, nichts beachten. Dinge wie "<sub></sub>" werden interpretiert, "3 < 5" macht in der Datenbank auch keine Probleme. Was passiert denn bei Dir, wenn Du keine Konvertierung machst ?

    Gruß

    Hans

    1. Hallo,

      Was passiert denn bei Dir, wenn Du keine Konvertierung machst ?

      In harmlosen Fällen z.B. so was:

        
      <style type="text/css">body {color:#f00;font-size:900%;} input {display:none;}</style>  
      <script type="text/javascript">
      ~~~`for (i=0;i < 100;i++)alert ("Halli Hallo zum "+i+"/100."); next;`{:.language-JavaScript}`</script>`{:.language-html}  
        
      Gruß aus Berlin,  
      Markus  
      
      -- 
      alles wird gut...
      
      1. Hi !

        <style type="text/css">body {color:#f00;font-size:900%;} input {display:none;}</style>
        <script type="text/javascript">

          
        OK, und was hast Du eingegeben ? Vielleicht liegt ja der Hund in einem ganz anderen Pfeffer begraben ;-)  
          
        Beispiel: Als ich "ä","ö","ü" etc. Prüfen wollte (in einer HTML-Seite, die aus der Bank erzeugt wurde), hat meine Datenbank diese Zeichen des HTML-Codes intern als "d", "V", "|" abgelegt. Somit habe ich mich immer gewundert, dass aus dem Wort "Bild" ein "Bil&auml;" wurde.  
          
        Workaround: In die Seite ein  
        <SCRIPT SRC="meine/konvertier\_datei.js"></SCRIPT>  
        gemacht und in dieser Seite dann die Prüfung durchführen und entweder true oder false zurückliefern. Vielleicht kann man so eine Lösung auch bei Dir anbringen.  
          
        Gruß  
          
        Hans
        
    2. Hallo Raid,

      zufaelligerweise arbeite ich an einem aehnlichen Projekt. Bei mir muss ich, ausser den Umlauten, nichts beachten. Dinge wie "<sub></sub>" werden interpretiert, "3 < 5" macht in der Datenbank auch keine Probleme. Was passiert denn bei Dir, wenn Du keine Konvertierung machst ?

      Gruß

      Hans

      Hi Hans,

      mache ich keine Konvertierung "zerhäckseln" mir diese Tags die spätere HTML-Ausgabe. D.h. Dieser Eintrag wird über Internetexplorer und Datenbank aufgerufen. "<" und "> machen mir auch nicht immer Probleme. Aber wenn eben ein "verfänglicher" Text zwischen < und > steht zerhäckselt es mir die HTML-Ausgabe. Deshalb mache ich diese Konvertierung generell

      1. Hallo Hans und Raid!

        Ich würde mich an eurer Stelle erstmal mit den Grundlagen beschäftigen, bevor ich an serverseitige Scripte gehe. Ihr werdet euch sonst ne Menge Sichrheitslücken einbauen.

        Gruß aus Iserlohn

        Martin

        1. Hallo Hans und Raid!

          Ich würde mich an eurer Stelle erstmal mit den Grundlagen beschäftigen, bevor ich an serverseitige Scripte gehe. Ihr werdet euch sonst ne Menge Sichrheitslücken einbauen.

          Gruß aus Iserlohn

          Martin

          Da hast du den Nagel auf den Kopf getroffen!

          Es geht hier um ein Portal (Apache, PHP, mySQL), dass nur in einem Netzwerkverbund aufgerufen wird. Ich habe es nicht entwickelt bzw. programmiert, soll es aber in Zukunft bzw. jetzt betreuen.

          Für Kurse bin ich schon angemeldet, wollte nur eben mal die dringensten Probleme versuchen zu lösen...

  2. Moin!

    Mittels php wird in einem Feld ein Text eingegeben, in einer Datenbank gespeichert und bei Abruf als HTML angezeigt.

    Nun musste ich bei Eingabe der Zeichen < und > diese in &lg usw. umwandeln, da sie sonst zur verunstaltung des Eintrags in HTML-Darstellung führten.

    Aus diesem Grund kann ich den <sub>-Befehl auch nicht anwenden. Hat vieleicht jemand eine Idee wie ich trotzdem tiefergestellte Zeichen darstellen könnte?

    Es gibt eigentlich nur drei Möglichkeiten, in der Welt von Text, HTML-Quelltext und Userinput zu arbeiten:

    1. Möglichkeit: Die Textarea enthält "plain text", d.h. die eingegebenen Zeichen <, > und & werden bei der Ausgabe in einer HTML-Seite immer durch Entities ersetzt. Das bedeutet, dass man keinerlei aktiven HTML-Code eingeben kann, alles wird immer zu dargestelltem Text.

    2. Möglichkeit: Die Textarea enthält HTML-Quellcode, d.h. die eingegebenen Zeichen <, > und & werden NICHT durch Entities ersetzt. Das bedeutet, dass der Benutzer beliebigen HTML-, CSS- und Javascriptcode eingeben kann, und wenn er die Darstellung z.B. des Zeichens < wünscht, muß er die Entity &lt; verwenden.

    3. Möglichkeit: Die Textarea enthält "plain text" plus formatierende Sonderzeichen bzw. Textstrings - der Klassiker wäre BB-Code. Damit erreicht man die Vorteile der Möglichkeit 1 (kein beliebiger, einschleusbarer HTML- und Programmcode), erlaubt dem Benutzer aber eine definierte Auswahl an Formatierungen, die vom verarbeitenden System gesondert behandelt werden. Solche Strings mit Sonderbedeutung erfordern entweder, dass diese Strings nicht mehr als normaler Text eingebbar und darstellbar sind (man sollte dann also Strings verwenden, die nicht in normalen Texten vorkommen), oder man muß die Strings escapen können.

    Methode 3 würde darauf hinauslaufen, dass du entweder echten BBCode benutzt und z.B. "[sub]tiefgestellt[/sub]" eingegeben wird, um tiefgestellten Text zu erreichen, welcher dann in HTML umgesetzt wird, oder du erlaubst direkt die Eingabe von "<sub>" und "</sub>", welche dann ausnahmsweise nicht in "&lt;sub&gt;" und "&lt/sub&gt;" umgewandelt werden - in beiden Fällen wäre es dann nicht mehr möglich, die jeweiligen Zeichenketten selbst im Text zu verwenden. Ein erklärender Text zum HTML-Tag <sub>, der das Tag sowohl erwähnt, als auch in der praktischen Anwendung zeigt, würde also nicht so einfach funktionieren.

    - Sven Rautenberg

    --
    My sssignature, my preciousssss!
    1. Hallo Sven.

      1. Möglichkeit: Die Textarea enthält HTML-Quellcode, d.h. die eingegebenen Zeichen <, > und & werden NICHT durch Entities ersetzt. […]

      2. Möglichkeit: Die Textarea enthält "plain text" plus formatierende Sonderzeichen bzw. Textstrings - der Klassiker wäre BB-Code. […]

      2½. Möglichkeit: Nur eine Teilmenge des in die Textarea eingegebenen HTML-Codes wird interpretiert und umgesetzt. Alles andere wird als ungültig angesehen und mit Entities entschärft.
      Diese Möglichkeit wird oft in Blogs genutzt, in dem z. B. nur Grundelemente wie a, strong, em und dergleichen interpretiert werden.

      Einen schönen Mittwoch noch.

      Gruß, Ashura

      --
      sh:( fo:} ch:? rl:( br: n4:~ ie:{ mo:| va:) de:> zu:} fl:( ss:) ls:[ js:|
      mathbr:del.icio.us/ mathbr:w00t/
      1. Moin!

        2½. Möglichkeit: Nur eine Teilmenge des in die Textarea eingegebenen HTML-Codes wird interpretiert und umgesetzt. Alles andere wird als ungültig angesehen und mit Entities entschärft.

        Das ist meine Möglichkeit 3. Hast du im Zitat allerdings weggekürzt.

        - Sven Rautenberg

        --
        My sssignature, my preciousssss!
        1. Hallo Sven.

          Das ist meine Möglichkeit 3. Hast du im Zitat allerdings weggekürzt.

          Ja, hatte ich nicht gänzlich wahrgenommen, mein Fehler.

          Einen schönen Mittwoch noch.

          Gruß, Ashura

          --
          sh:( fo:} ch:? rl:( br: n4:~ ie:{ mo:| va:) de:> zu:} fl:( ss:) ls:[ js:|
          mathbr:del.icio.us/ mathbr:w00t/
  3. Hello out there!

    Welche tiefgestellten Zeichen brauchst du denn? Wenn sich das auf Ziffern beschränkt – die sind im Universal Character Set enthalten: http://www.unicode.org/charts/PDF/U2070.pdf

    Entweder du verwendest U+2080 ₀ bis U+2089 ₉ im Text oder numerische Referenzen &#x2080; bis &#x2089;

    Veraltete Browser könnten bei der Darstellung dieser Zeichen allerdings Problem haben.

    See ya up the road,
    Gunnar

    --
    “Remember, in the end, nobody wins unless everybody wins.” (Bruce Springsteen)
    1. Hi!

      ₀ ₉

      Veraltete Browser könnten bei der Darstellung dieser Zeichen allerdings Problem haben.

      Und ich hab damit unter 180% Schriftgröße auch ein Problem - und soo alt bin ich auch nicht...

      Gruß aus Iserlohn

      Martin

      1. Hallo Martin Hölter,

        Und ich hab damit unter 180% Schriftgröße auch ein Problem - und soo alt bin ich auch nicht...

        Ach! Das war Text? Und ich dachte schon, mein Monitor hätte einen Pixelausfall.

        Gruß, Jürgen