DiamondDog: Quelltext in mysql DB schreiben und wieder auslesen?

Hallo Leute,
meine Frage ist, wie schreibe ich am besten einen Quelltext in meine DB und lese diesen zum anzeigen in einer Textarea wieder aus? Zum erzeugen des Quelltextes benutze ich den CKEditor. Ich hab auch schon einiges ausprobiert aber der Quelltext der nachher ausgelesen wird führ in der Textarea mit dem CKEditor immer zu Problem weil zB. /" statt " im Quelltext steht.
Wäre super wenn mir jemand sagen könnte wie ich am besten den Quelltext in die DB schreiben und auslesen kann.

Danke schon mal für eure Hilfe

Code:

  
$sql = "UPDATE  
            other  
         SET  
            text = '".mysql_real_escape_string($_POST['text'])."'  
         WHERE  
            id = '".mysql_real_escape_string($row['id'])."'  
             ";  
mysql_query($sql) OR die("<pre>\n".$sql."</pre>\n".mysql_error());  

Mfg Dog

  1. Lieber DiamondDog,

    Du hast wahrscheinlich ein Problem mit magic_quotes. Schau hier im Forumsarchiv oder bei php.net, wie Du dieses Ärgernis wirksam beseitigen kannst.

    Liebe Grüße,

    Felix Riesterer.

    --
    ie:% br:> fl:| va:) ls:[ fo:) rl:| n4:? de:> ss:| ch:? js:) mo:} zu:)
    1. Du hast wahrscheinlich ein Problem mit magic_quotes. Schau hier im Forumsarchiv oder bei php.net, wie Du dieses Ärgernis wirksam beseitigen kannst.

      Das hat mir schonmal etwas weiter geholfen, hab einwenig gesucht aber nicht sehr viel gefunden. Hab vll auch falsch gesucht oder es fehlte mir vll noch ein Stichwort.
      Hab schon mal gefunden das man auf magic_quotes prüfen kann:

        
      if(get_magic_quotes_gpc())  
      
      

      und wenn ich das richtig verstanden habe sol man so das Problem beheben können:

        
      stripcslashes($_POST['text']);  
      
      

      oder hab ich das falsch verstanden?

      Mfg Dog

  2. Hi!

    meine Frage ist, wie schreibe ich am besten einen Quelltext in meine DB und lese diesen zum anzeigen in einer Textarea wieder aus?

    Code unterscheidet sich aus Sicht eines DBMS in nichts von anderen Daten. Wenn du den Kontextwechsel wie üblich berücksichtigst, hast du kein DBMS-Problem.

    Ich hab auch schon einiges ausprobiert aber der Quelltext der nachher ausgelesen wird führ in der Textarea mit dem CKEditor immer zu Problem weil zB. /" statt " im Quelltext steht.

    Schau genau hin. Ist es wirklich /" oder "? Und betreibe Debugging des kompletten Prozesses. Entstehen die zusätzlichen Zeichen erst beim Auslesen oder sind sie nicht bereits vor den Eintragen in die Datenhaltung vorhanden? Dann wäre das Problem die bereits erwähnten Magic Quotes.

    Lo!

    1. Schau genau hin. Ist es wirklich /" oder "? Und betreibe Debugging des kompletten Prozesses. Entstehen die zusätzlichen Zeichen erst beim Auslesen oder sind sie nicht bereits vor den Eintragen in die Datenhaltung vorhanden? Dann wäre das Problem die bereits erwähnten Magic Quotes.

      Also es sind " diese sind nach dem übergeben vorhanden, also schon vor dem schreiben in die DB.

      1. Hab das Problem jetzt so gelöst:

          
        //Magic Code Problem beheben  
        function magicQuotes($post){  
          if(get_magic_quotes_gpc()){  
              return stripslashes($post);  
          }else{  
            return;  
          }  
        }  
          
        echo magicQuotes($row['text']);  
        
        
        1. Hi!

          Hab das Problem jetzt so gelöst:

          //Magic Code Problem beheben

          function magicQuotes($post){
            if(get_magic_quotes_gpc()){
                return stripslashes($post);
            }else{
              return;
            }
          }

          echo magicQuotes($row['text']);

            
          Das ist aber nicht richtig und funktioniert nur, weil grad die MQs bei dir aktiv sind. Wenn sie jemand ausschaltet, dann hast keine Ausgabe mehr, weil die Funktion nichts zurückgibt. Außerdem solltest du sie nicht auf die aus dem DBMS kommenden Daten anwenden sondern auf die Eingabedaten ($\_GET/$\_POST). Im DBMS sind sie die zusätzlichen Zeichen nicht nur unnütz sondern manchmal auch hinderlich. Sie müssen da gar nicht reinkommen.  
            
          Das Feature Magic Quotes ist schon seit einer langen Zeit abgekündigt und in den Default-Einstellungen deaktiviert. Trotzdem wird es bei den Webhostern gern wieder aktiviert, um wenigstens ein klein wenig Sicherheit gegen SQL-Inection zu haben, wenn sich der Programmierer dazu überhaupt keine Gedanken gemacht hat. Da du aber in deinem ersten Codeausschnitt gezeigt hast, dass dir das Thema bewusst ist, kannst und solltest du versuchen, die Magic Quotes generell zu deaktivieren. Sie im Code nachträglich zu entfernen, nachdem sie PHP unnötigerweise eingefügt hat, ist nur die zweitbeste Lösung. Wenn man sie nicht generell deaktivieren kann, sollte man zumindest die Entfernungsprozedur nur einmal und am Scriptanfang ausführen lassen, statt an jeder Verwendung einen individuellen Prüfaufruf einzubauen. Für beide Wege hat das PHP-Handbuch im [Kapitel zu den Magic Quotes](http://de.php.net/manual/en/security.magicquotes.php) einen Abschnitt für die [Deaktivierung](http://de.php.net/manual/en/security.magicquotes.disabling.php).  
            
            
          Lo!
          
  3. Moin,

    meine Frage ist, wie schreibe ich am besten einen Quelltext in meine DB und lese diesen zum anzeigen in einer Textarea wieder aus?

    Also ich hab das mal bei meiner ersten Seite gemacht, bevor ich auf Dateien umgestiegen bin. Wie ich das genau gemacht habe, kann ich nicht mehr sagen, aber ich kann dir sagen, dass ich mir dazu den Quelltext von phpMyAdmin angeguckt habe. Dort werden ja auch nur irgendwelche PHP-Funktionen verwendet um Daten anzuzeigen und zu schreiben.

    Grüße Marco