Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] htmlentities() ersetzt keine Apostrophe

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • [Erledigt] htmlentities() ersetzt keine Apostrophe

    Hallöle zusammen

    Also, folgendes Problem: ich übermittle per formular ein string an ein php-file. Und da wird per htmlentities (nur den string als parameter, ohne ENT_QUOTES usw.). Mit ENT_QUOTES usw. hab ichs auch schon versucht, geht aber net. Nun eben, Anführungszeichen werden schön in HTML-Codes verwandelt, allerdings die Apostrophe (') nicht. Und meines Wissens sollten diese auch ersetzt werden.

    Wenn ich das aber unverändert lasse, kann ich die Werte nicht fehlerfrei in der Datenbank speichern.

    What to do now?

    Danke vielmals und grüsse

    Flo


  • #2
    Wenn ich das aber unverändert lasse, kann ich die Werte nicht fehlerfrei in der Datenbank speichern.
    Du solltest Zeichen erst bei der Ausgabe escapen, aber die unveränderten Strings in der Datenbank speichern!

    Um Sachen sicher in SQL-Statements einzubauen: http://de.php.net/manual/en/function...ape-string.php
    Signatur:
    PHP-Code:
    $s '0048656c6c6f20576f726c64';
    while(
    $i=substr($s=substr($s,2),0,2))echo"&#x00$i;"

    Kommentar


    • #3
      Zitat von floripipo Beitrag anzeigen
      What to do now?
      To do now: Mit dem hanebüchenen Unfug aufhören, und sich informieren, wie man es richtig macht ... http://wiki.selfhtml.org/wiki/Artikel:Kontextwechsel

      Kommentar


      • #4
        ansonsten , htmlentities -> htmlspecialchars ^^
        "Irren ist männlich", sprach der Igel und stieg von der Drahtbürste

        Kommentar


        • #5
          Hey leute,
          danke vielmals für die tipps! Hat geklappt

          lg flo

          Kommentar


          • #6
            ansonsten , htmlentities -> htmlspecialchars ^^
            Ausgesprochen schlechter Hinweis. Und wieder einer mehr, der es falsch macht.
            --

            „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
            Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


            --

            Kommentar


            • #7
              tja .. ist aus nem anderen Forum zu php - da hiess es immer , wenn einer htmlentities verwendet hat , das sei veraltet und man solle htmlspecialchars nehmen - natürlich nur für die Darstellung . in die Datenbank schreibt man selbstverständlich mit mysql_real_escape_string
              "Irren ist männlich", sprach der Igel und stieg von der Drahtbürste

              Kommentar


              • #8
                Unterschiede:

                http://php.net/htmlspecialchars
                http://www.php.net/manual/de/function.htmlentities.php
                PHP-Code:
                if ($var != 0) {
                  
                $var 0;

                Kommentar


                • #9
                  natürlich nur für die Darstellung . in die Datenbank schreibt man selbstverständlich mit mysql_real_escape_string
                  Das hast Du aber leider nicht dazugeschrieben.
                  --

                  „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
                  Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


                  --

                  Kommentar


                  • #10
                    Es ist sinnvoll, die Escape-Methode zu abstrahieren. Das erlaubt es, das Ausgabecharset bei Notwendigkeit zentral anzupassen und spart außerdem Tipparbeit.

                    PHP-Code:
                    function escape($s)
                    {
                        return 
                    htmlspecialchars($sENT_QUOTES'UTF-8');

                    PHP-Code:
                    <h1><?php echo escape($title); ?></h1>
                    Beim Einsatz von UTF-8 ist htmlspecialchars üblicherweise das Mittel der Wahl.

                    Kommentar


                    • #11
                      Beim Einsatz von UTF-8 ist htmlspecialchars üblicherweise das Mittel der Wahl.
                      Wie auch bei jedem anderen Zeichensatz der die entsprechenden Sonderzeichen unterstützt.
                      Refining Linux: “Performing Push Backups – Part 1: rdiff-backup

                      Kommentar


                      • #12
                        Ja, abgesehen von Corner cases wie dem nicht vorhandenen Euro-Zeichen in ISO-8859-1.

                        Kommentar


                        • #13
                          Dafür gibt es ja ISO-8859-15.
                          Refining Linux: “Performing Push Backups – Part 1: rdiff-backup

                          Kommentar


                          • #14
                            Was ich hätte sagen sollen, ist: htmlspecialchars begrenzt den Umfang der kodierbaren Zeichen etwa bei 1-Byte-Zeichensätzen unnötig. Wenn ich beispielsweise UTF-8-Daten in ISO-8859-xx ausgeben möchte, ist htmlentities wahrscheinlich die bessere Wahl.

                            Ob es eine gute Idee ist, das zu wollen, lasse ich dahingestellt.

                            Kommentar

                            Lädt...
                            X