PHP: keine Automatischen Sonderzeichen

Dieses Thema im Forum "Programmieren" wurde erstellt von JojoKoester, 7. April 2006.

Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. JojoKoester

    JojoKoester Halbes Megabyte

    Registriert seit:
    13. Dezember 2003
    Beiträge:
    547
    Hallo,

    ich habe eine Textverwaltung mit einem WYSIWYG-Editor im Web erstellt. Danach speichere ich einfach den Inhalt der Textbox von dem Editor in einer Datei. Dabei entsteht jedoch ein Problem: aus " wird \" und wenn man diese Datei jetzt drei mal bearbeitet hat: \\\"

    Also sieht ein Bild bei mir so aus:
    <img src=\\\\\\\\\\\\\"bild.png\\\\\\\\\\\\\" width=\\\\\\\\\\\\\"10\\\\\\\\\\\\\" height=\\\\\\\\\\\\\"23\\\\\\\\\\\\\" alt=\\\\\\\\\\\\\"hallo\\\\\\\\\\\\\">


    Wie das Ergebnis nachher aussieht, brauche ich wohl nicht zu erklären.

    Weiß jemand, wie ich diese FUnktion ausschalte??


    Gruß
    Johannes
     
  2. kalweit

    kalweit Hüter der Glaskugel

    Registriert seit:
    18. April 2000
    Beiträge:
    31.485
    Versuch mal die Maskierung mit htmlentities();
     
  3. enschman

    enschman Megabyte

    Registriert seit:
    29. Dezember 2005
    Beiträge:
    1.224
    Hi,

    htmlentities wäre vollkommen falsch...
    (Der TO will ja HTML-Code erzeugen!)

    Ne, der richtige Ansatz wäre eine eigene Funktion, welche im Falle, das magic_quotes an ist, die Slashes wieder entfernt! Da ich selber eine HP habe, hab ich das alles schon durchgemacht und kann dir hier die Lösung präsentieren:

    PHP:
    <?php
    function look_slash($var)
    {
             if(
    get_magic_quotes_gpc()) {
             
    $var stripslashes($var);
             }
             return 
    $var;
    }
    ?>
    Aufrufen kannst du die Funktion hier mit dem Beispiel einer übergebenen POST-Variable eines Formulars mit Namen "wysiwyg" (Passt zu deinem Formular wohl am Besten):

    PHP:
    <?php
    //die Funktion muss sich etwa in der Datei befinden, oder includet werden...

    $inhalt look_slash($_POST['wysiwyg']);
    //Jetzt kannst du den Inhalt in eine Datei speichern lassen, die überflüssigen Slashes sind entfernt!
    ?>
    mfg Tenschman
     
  4. JojoKoester

    JojoKoester Halbes Megabyte

    Registriert seit:
    13. Dezember 2003
    Beiträge:
    547
    danke, das funktioniert jetzt.

    Leider habe ich jetzt ein Problem mit den Links:

    aus:
    <a href="index.php?id=3_1">Link</a>

    wird:
    <a href="/?id=3_1">Links</a>


    Gibt es dafür auch noch eine Lösung??
     
  5. enschman

    enschman Megabyte

    Registriert seit:
    29. Dezember 2005
    Beiträge:
    1.224
    Hi,

    weißt du was: Poste mal etwas (oder alles) von diesem Code hier in einem Beitrag, dann schau ich mal nach Fehlern!

    Wenn ich keinen Code vor mir habe, tu ich mich meist schwer, den richtig zu interpretieren (also in meinem Kopp, nich im PC ;-)

    mfg Tenschman
     
  6. JojoKoester

    JojoKoester Halbes Megabyte

    Registriert seit:
    13. Dezember 2003
    Beiträge:
    547
    ok, du bist der chef :bet: ;-)

    Ich habe einfach nur den PHP-Code kopiert. Weiter unten steht dann der HTML-Code mit dem Formular usw.

    PHP:
    <?php
        
    function look_slash($var)     // zum rausfiltern der Slahs
        

                 if(
    get_magic_quotes_gpc()) { 
                 
    $var stripslashes($var); 
                 } 
                 return 
    $var
        }

        if(isset(
    $_POST['Submit'])) {
            
    // form wurde ausgefüllt
            
    $inhalt look_slash($_POST['content']);    // Slashs aus dem WYSIWYG-Editorfeld
            
    $fp fopen("../../" $_POST['textfile'], "w+");
                
    flock($fp2);
                
    fwrite($fp$inhalt);
                
    flock($fp3);
            
    fclose($fp);
            
            echo 
    "Daten wurden aktuallisiert.<br><br><a href=\"javascript:history.back();\">Zur&uuml;ck</a>";
        } else {
    ?>
    Formular und Javascript.. das übliche halt
    PHP:
    <?php
    }
    ?>
     
  7. enschman

    enschman Megabyte

    Registriert seit:
    29. Dezember 2005
    Beiträge:
    1.224
    Hi,

    hab des jetzt mal ausführlich getestet: Ich find keinen Fehler!!!

    Ich würd noch ein bisschen rumprobieren...

    mfg Tenschman
     
  8. JojoKoester

    JojoKoester Halbes Megabyte

    Registriert seit:
    13. Dezember 2003
    Beiträge:
    547
    Gibt es eine möglichkeit, die \ jetzt wieder aus den Dateien raus zu holen? Also, automatisch nicht mit der Hand, da der Redakteuer die Seite bereits so korrigiert hat und das ist ein Haufen Arbeit... :aua:
     
  9. enschman

    enschman Megabyte

    Registriert seit:
    29. Dezember 2005
    Beiträge:
    1.224
    Hi,

    ja, hiermit:

    PHP:
    addslashes($deine_zeichenkette);
    mfg Tenschman
     
  10. JojoKoester

    JojoKoester Halbes Megabyte

    Registriert seit:
    13. Dezember 2003
    Beiträge:
    547
    Schon zu spät, aber trozdem danke.

    Hab meine Schwester für 1,50Euro / Stunde an meinen PC gelassen :) :)
     
Status des Themas:
Es sind keine weiteren Antworten möglich.

Diese Seite empfehlen