Matthias Jütte: escapes in ausgabe verhindern

hi!

ich habe ein formular, in dem ich daten bearbeiten lasse. wenn das formular abgeschickt wird werden die daten an ein skript übergeben, daß die daten zum einen normal als html-code ausgibt, und zum anderen erneut in ein formular schreibt, wo diese ggf. nochmal korrigiert werden können.

das funktioniert soweit wunderbar, allerdings habe ich probleme mit sonderzeichen. jegliche vorkommende " oder ' und vermutlich auch / u.Ä. bekommen ein \ vorangestellt. so wird dann auch alles in die datenbank geschrieben und danach angezeigt.

also als beispiel:

<a href="seite.html">Hier geht's wohin</a>

wird zu

<a href="seite.html">Hier geht's wohin</a>

  1. hi,

    das funktioniert soweit wunderbar, allerdings habe ich probleme mit sonderzeichen. jegliche vorkommende " oder ' und vermutlich auch / u.Ä. bekommen ein \ vorangestellt. so wird dann auch alles in die datenbank geschrieben und danach angezeigt.

    beim schreiben in die DB ist dies eine sicherheitsmassnahme, damit dir keiner deine DB manipulieren kann.

    aber wenn du vor dem ausgeben des strings stripslashes() darauf anwendest, dann löscht dies die maskierenden slashes wieder heraus.

    gruss,
    wahsaga

  2. Hallo Matthias,

    jegliche vorkommende " oder ' und vermutlich auch / u.Ä. bekommen ein \ vorangestellt.

    http://www.dclp-faq.de/q/q-magic-quotes.html dürfte dir helfen.

    Grüße aus Nürnberg
    Tobias

    --
    Selfcode: sh:( fo:) ch:? rl:( br:< n4:& ie:% mo:| va:) de:] zu:) fl:( ss:| ls:[ js:|
  3. Hallo
    In eine DB gehören meiner Ansich nach ausschliesslich Daten, kein Quelltext oder sonstiger Kram.
    Für Solche Sachen gibs dann zur Ausgabe BB CODE dann ist auch ausgeschlossen, dass irgendwelche Leute Sachen reinschreiben, die nur Schaden verursachen!
    Viele Grüße TomIRL

    1. hi,

      In eine DB gehören meiner Ansich nach ausschliesslich Daten, kein Quelltext oder sonstiger Kram.
      Für Solche Sachen gibs dann zur Ausgabe BB CODE

      da bin ich leicht anderer meinung.
      wenn du z.b. bb-code für smilies verwendest, warum diese dann nicht gleich beim eintragen in die db durch die entsprechenden <img>-tags ersetzen, anstatt dies bei _jedem_ auslesen der daten erneut zu tun?
      das ist doch redundante arbeit, die zu höhrerer serverbelastung führt.

      allerdings fällt mir jetzt gerade blöderweise ein gegenargument ein, mit dem ich meine eigene behauptung selber wieder entkräfte:
      wenn sich irgendwann mal die pfade der smilie-bilder ändern, hast du mit deiner methode nur ein anpassung im script, ich habe hunderte und mehr in den db-daten :-)

      hat halt alles seine vor- und nachteile.

      dann ist auch ausgeschlossen, dass irgendwelche Leute Sachen reinschreiben, die nur Schaden verursachen!

      massnahmen dagegen sollte man aber sowieso treffen, egal ob man den text jetzt beim eintragen in die db oder erst beim ausgeben bearbeitet.

      gruss,
      wahsaga