kostenloser Webspace werbefrei: lima-city


Reihenfolge der Funktionen, um Eingabe zu prüfen

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    bildungsluecke-jsg

    bildungsluecke-jsg hat kostenlosen Webspace.

    Hi Leute,

    Ich will eine Eingabe aus einem tag/formular">Formular in die Datenbank speichern. Aus gewissen Gründen würde ich aber vorher gerne sichergehen, dass nichts Schlimmes passiert und will deshalb zum einen nl2br() und htmlspecialchars() auf meine Variable $message anwenden, bevor ich sie in die Datenbank speichere.

    Kann mir jemand sagen, ob das so sinnvoll ist, und wenn ja, in welcher Reihenfolge ich nl2br() und die andere Funktion verwenden muss bzw., was bessere Alternativen sind?
    Danke im Voraus,

    Bildungsluecke
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. c**********h

    htmlentities() tut es genauso und ist effizienter ;-)
  4. mysql_real_escape_string solltest du auf jeden fall als letztes anwenden. htmlentities und nl2br() snd meiner meinung nach sinnlos
  5. Autor dieses Themas

    bildungsluecke-jsg

    bildungsluecke-jsg hat kostenlosen Webspace.

    simuliertes schrieb:
    mysql_real_escape_string solltest du auf jeden fall als letztes anwenden. htmlentities und nl2br() snd meiner meinung nach sinnlos


    nl2br brauche ich, damit ich Zeilenumbrüche erhalte :)

    Deswegen würde es mich ja interessieren, ob htmlentities() oder was auch immer auch <br> in den entsprechenden html-Quellcode umwandelt und dadurch mein Zeilenumbruch verschwindet
  6. omg ZEILENUMBRÜCHE?
    In diesem Themahabe ich das gerade ausführlich behandelt ^^
    Ich nehme mal an das Du weisst das <br> bereits html ist und meintest eigent lich
    solch einen ->
    <-umbruch oder?
    Habe ich die Frage richtig verstandne brauchst Du
    $test="blablup  
    usw ";
    $test=preg_replace("/[\x0D\x0A]+/", "<br>", $test);
    echo $test:



    Meine Antwort bezog sich da ja auch nur auf die Frage wie Du sicher Daten in einer Datenbank speicherst .

    für sonderzeichen gibt es 2 Wege:
    -htmlentities anwenden (kann zu unerwarteten ergebnissen führen)
    -konsequent in utf-8 speichenr & verarbeiten. (verdammt viel zu beachten dabei aber 100% sicher)

    Letzteres heisst:
    1) in der Datenbank die Strings als utf-8 speichern (kannst du im mysql-manager auswählen)
    2) multybite string funktionen verwenden
    3)Falls nötig utf8_encode verwenden


    p.s. Die Datenbank jedenfalls würde Deinen Zeilenumbruch so oder so speichern, ist also kein Datenbank-Problem .

    Beitrag zuletzt geändert: 6.11.2010 8:37:36 von simuliertes
  7. Autor dieses Themas

    bildungsluecke-jsg

    bildungsluecke-jsg hat kostenlosen Webspace.

    Das Problem ist, dass ich in einem Formular die Php-Zeilenumbrüche erhalte und nicht <br>, weswegen ich die PHp-Umbrüche \n\r mit <br> durch die Funktion nl2br() ersetzen will, jedoch wäre es ja extremst dümmlich, wenn ich mir das dann als Wort abspeichere und nicht als html-Tag

    Ist die Funktion, die du da geschrieben hast dafür gedacht?
  8. bildungsluecke-jsg schrieb:
    Das Problem ist, dass ich in einem Formular die Php-Zeilenumbrüche erhalte und nicht <br>, weswegen ich die PHp-Umbrüche \n\r mit <br> durch die Funktion nl2br() ersetzen will, jedoch wäre es ja extremst dümmlich, wenn ich mir das dann als Wort abspeichere und nicht als html-Tag

    Ist die Funktion, die du da geschrieben hast dafür gedacht?


    Der von mir gepostete code nimmt Dich wörtlich und ersetzt, \n\r durch <br>.
    nl2br() dagegen fügt hinter jedem Umbruch ein <br> ein.
    Was dümmlich ist kann hier keiner bewerten da Du nicht gesagt hast was Du mit den Formulardaten machst/wofür die gebraucht werden.
    Also entweder hilft es DIr oder Du musst konkreter werden.
    Kleiner tip:
    Um rauszufinden was von anderen geposteter Code macht,
    den Code einfach mal ausprobieren & in der online Dokumentation gucken

    http://de.php.net/manual/de/

    Beitrag zuletzt geändert: 6.11.2010 10:09:01 von simuliertes
  9. Wenn du die Daten in die Datenbank schreibst, wendest du einzig und allein mysql_real_escape_string an. SONST NICHTS!

    Wenn du die Daten dann ausgeben willst (in HTML), dann wendest du zuerst htmlspecialchars und dann nl2br an (andersrum würdest du stattt zeilenumbrücken lauter &lt;br&gt; bekommen.)
  10. Autor dieses Themas

    bildungsluecke-jsg

    bildungsluecke-jsg hat kostenlosen Webspace.

    nikic schrieb:
    Wenn du die Daten in die Datenbank schreibst, wendest du einzig und allein mysql_real_escape_string an. SONST NICHTS!

    Wenn du die Daten dann ausgeben willst (in HTML), dann wendest du zuerst htmlspecialchars und dann nl2br an (andersrum würdest du stattt zeilenumbrücken lauter &lt;br&gt; bekommen.)


    VielenDank,

    das ist genau das, was ich wissen wollte :).

    Jetzt verstehe ich es.

    Das wäre es
  11. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!