[PHP] \" bzw verlassen eines Strings



  • Hi !

    Sorry für die blöde Überschrift, aber ich weiß nicht wie ich meine Frage sonst nennen soll ...

    Also, es geht um folgendes :
    Ich hab mir zur Übung ein kleines dateibasiertes Gästebuch geschrieben; das funzt -oh wunder- auch ganz OK 😉
    Ein Username, Emailaddy und ein kleiner Text wird über ein HTML Formualar eingelesen und in eine Datei geschrieben

    Wenn ich jetzt beim Messagetext folgendes eingebe :

    hallo \"<h1>welt</h1>
    

    Wird nicht etwa "hallo welt" ausgegeben sondern in etwa sowas :

    [code]
    hallo welt //<<-- Welt bitte in ganz groß vorstellen :)[/code]

    Wie kann ich verhindern dass man mit \" einen PHP String verlässt und HTML Befehle ausgeben kann ? Auf der Tutorialseite von Quakenet hab ich nix gefunden, auch nicht auf www.webmasterpro.de 😞

    Danke für eure Hilfe :p



  • Funktioniert das wirklich nur, wenn du ein \" voransetzt?
    Suchst du vielleicht htmlspecialchars oder htmlentities?



  • Jo, genau sowas, thx 😉



  • Mh, die Funktion tuts doch net.
    Der ersetzt jetzt jedes \ durch \\, sicherlich nicht im Sinne des Erfinders 😉

    Gibts da keine andere Funktion ? Ich hab in der Funktionsreferenz von www.php.net nichts gefunden was mir wirklich hilft...

    Danke nochmal !



  • ich mach nach dem Aufrug einfach immer noch 3 mal str_replace:

    $string = str_replace("\\&quot;","&quot;",$string);
    $string = str_replace("\\';","'",$string);
    $string = str_replace("\\\\","\\",$string);
    

    Wenn du was besseres findest: her damit (ich find das nämlich auch immer ein bischen umständlich 🙄

    [ Dieser Beitrag wurde am 18.02.2003 um 21:29 Uhr von flenders editiert. ]



  • Super, das klappt !

    Thx 🙂



  • Hi !

    flenders : In deiner Funktion ist noch ein Fehler. ' wird zu \' maskiert.
    Leider konnte ich den Fehler nicht beheben, da ich durch die Parameter nicht so ganz durchsteige...

    Könntest du vielleicht .... 🙂 🙂



  • Uops, ein Schreibfehler:

    $string = str_replace("\\'","'",$string);
    

    Da hatte sich ein ; eingeschlichen 😉


Log in to reply