PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : HTML Code in MySQL Datenbank speichern


Gast
2005-09-08, 13:52:46
Ich möchte HTML Code der in ein Textarea eingegeben wird in eine MySqL Tabelle speichern. Leider funktioniert das nicht ganz so einfach wie ich dachte. Der Code wird an manchen Stellen mit Sonderzeichen wie \ erweitert usw.
Kann mir jemand von euch sagen auf was ich achten muss wenn ich HTML Code in eine Tabelle speichern will?? Und wie ich ihn wieder auslesen kann?
Das wäre super! Danke!

Nase
2005-09-08, 14:12:59
Wenn ich mich recht entsinne, dann wird beim Absenden des Formulars vor jedes Anführungszeichen ein \ gestellt. Das musst du vor dem Speichern wieder rausfiltern.

Gast
2005-09-08, 14:27:26
Versuch's mal mit mysql_real_escape_String() beim Einfügen und strip_slashes() beim auslesen

Nase
2005-09-08, 14:37:47
Ich hab das gerade nochmal ausprobiert, aber konnte keine Probleme feststellen. Einfach ein Formular mit einer Textarea mit post übermittelt und in die DB gespeichert. DB-Feld hat den Typ text. Weder beim Speichern noch beim Auslesen irgendwelche Abnormitäten.

mithrandir
2005-09-08, 15:02:15
Dere!

Das kommt immer ganz darauf an, ob in der php.ini magic_quotes gesetzt ist, oder eben nicht. Evtl. hilft so etwas:

if( get_magic_quotes_gpc() )
{
$text = stripslashes( $_POST['dertext'] );
}

// Bei mysql_real_escape_string() sollte vorher ein stripslashes() verwendet werden, z.B:
$text = stripslashes( $_POST['dertext'] );
$text = mysql_real_escape_string( $text );

// Nach dem Auslesen aus der DB sollte z.B. auch auf HTML-Sonderzeichen geachtet werden:
htmlspecialchars( $text_from_db );
bye, mith

Gast
2005-09-08, 15:22:24
// Bei mysql_real_escape_string() sollte vorher ein stripslashes() verwendet werdenÖhm... warum?

mithrandir
2005-09-08, 15:35:32
Damit die Backslashes von evtl. bereits escapten Zeichen nicht erneut escaped werden.