str_replace wandelt zu viel um?

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

  • str_replace wandelt zu viel um?

    Hallöchen..


    Ich bin dabei einen "Umwandler" für spezielle Zwecke zu basteln und dafür nutze ich die Funktion "str_replace". Mein Problem ist nun, dass nach dem Umwandeln etwas ausgegeben wird was ich gar nicht angewiesen habe. Um genauer zu werden:

    User können versch. html-texte in eine Textarea eingeben und die werden dann dementsprechend umgewandelt.
    Und nun passiert folgendes... Immer wenn da normale " dabei sind wird ein \ davor gesetzt und setzt damit die Funkion des (zB.) Links ausser Betrieb.

    Umgewandelt wird folgendes:
    PHP-Code:
    $Body str_replace ("\n"" "$Body);
    $Body str_replace ("<""&lt;"$Body);
    $Body str_replace (">""&gt;"$Body); 
    Muss ich da evtl. noch mehr umwandeln damit diese \ nicht mehr vorkommen oder wie soll ich das sonst machen?

    Besten Dank schonmal im Voraus.


    medium22

  • #2
    Re: str_replace wandelt zu viel um?

    Stichwort: magic_quotes_gpc
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar


    • #3
      und zu deinem "umwandler", sieh dir mal die funktion htmlentities() an, ob die nicht geeigneter ist.

      Kommentar


      • #4
        Hallöchen...,


        Hab mal in meiner phpinfo geschaut und dort steht das auf "ON" - ändern kann ich das sowieso nicht. hmpfz

        Habs eben auch mal mit htmlentities versucht. Aber entweder ich bin zu doof oder die Funktion macht den selben "Fehler", jedenfalls ist das Ergebniss das selbe.

        Vielleicht liegts daran das die Ausgabe auch in einer Textarea ist?

        Schaut im Moment grad so aus:
        PHP-Code:
        <TEXTAREA cols="80" rows="20"><? echo htmlentities($Body); ?></TEXTAREA>
        $Body ist hier bei der Name Textarea in der der User seine Daten eingetragen hat - wird in der selben Datei übergeben.



        medium22

        Kommentar


        • #5
          Hab mal in meiner phpinfo geschaut und dort steht das auf "ON" - ändern kann ich das sowieso nicht. hmpfz
          du könntest abetr stripslashes() verwenden.

          Kommentar


          • #6
            Hallöchen...


            Herrlich, Danke!

            Das funktioniert wunderbar.

            PHP-Code:
            <TEXTAREA cols="80" rows="20">
            <? 
              $str = stripslashes($Body); 
              echo $str; 
            ?>
            </TEXTAREA>


            medium22

            Kommentar


            • #7
              Original geschrieben von medium22
              Habs eben auch mal mit htmlentities versucht. Aber entweder ich bin zu doof oder die Funktion macht den selben "Fehler", jedenfalls ist das Ergebniss das selbe.
              Natürlich kommt da das gleiche bei raus - weil die Funktion mit den selben Eingabedaten arbeitet, und in denen sind nun mal die Slashes schon drin.



              Und bei deiner jetzigen Lösung solltest du natürlich trotzdem noch htmlspecialchars benutzen.
              I don't believe in rebirth. Actually, I never did in my whole lives.

              Kommentar

              Lädt...
              X