1. Liebe Forumsgemeinde,

    aufgrund der Bestimmungen, die sich aus der DSGVO ergeben, müssten umfangreiche Anpassungen am Forum vorgenommen werden, die sich für uns nicht wirtschaftlich abbilden lassen. Daher haben wir uns entschlossen, das Forum in seiner aktuellen Form zu archivieren und online bereit zu stellen, jedoch keine Neuanmeldungen oder neuen Kommentare mehr zuzulassen. So ist sichergestellt, dass das gesammelte Wissen nicht verloren geht, und wir die Seite dennoch DSGVO-konform zur Verfügung stellen können.
    Dies wird in den nächsten Tagen umgesetzt.

    Ich danke allen, die sich in den letzten Jahren für Hilfesuchende und auch für das Forum selbst engagiert haben. Ich bin weiterhin für euch erreichbar unter tti(bei)pcwelt.de.
    Dismiss Notice

PHP: keine Automatischen Sonderzeichen

Discussion in 'Programmieren' started by JojoKoester, Apr 7, 2006.

Thread Status:
Not open for further replies.
  1. JojoKoester

    JojoKoester Halbes Megabyte

    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

    Versuch mal die Maskierung mit htmlentities();
     
  3. enschman

    enschman Megabyte

    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

    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

    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

    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

    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

    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

    Hi,

    ja, hiermit:

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

    JojoKoester Halbes Megabyte

    Schon zu spät, aber trozdem danke.

    Hab meine Schwester für 1,50Euro / Stunde an meinen PC gelassen :) :)
     
Thread Status:
Not open for further replies.

Share This Page