dedlfix: Wiord Datei in DB speichern

Beitrag lesen

echo $begrüßung;

ich lese die Datei ganz einfach ein mit
  $inhalt = file_get_contents($datei);

Soweit so gut.

$inhalt = addslashes($inhalt);

Wenn du mit einer SQL-Datenbank "redest", machst du das mit einem Befehl in Text-Form. Wenn du Binärdaten über eine Text-Schnittstelle transportieren möchtest, müssen sie so präpariert (maskiert) sein, dass bestimmte Zeichen nicht als Bestandteil dieses Text-Befehls erkannt werden. addslashes() ist dafür nicht ausreichend. Es behandelt zu wenige Zeichen. Verwende dazu eine zur Datenbank passende Maskier-Funktion. Für MySQL wäre das mysql_real_escape_string().

Außerdem sollte der Feldtyp ein binärer sein, beispielsweise BLOB statt TEXT.

Beim auslesen zurück mit
  $inhalt = stripslashes($files["inhalt"]);

Beim Auslesen kommen die Daten nicht mehr über die Text-Schnittstelle der Befehlseingabe. Sie werden in ihrer Roh-Form zurückgeliefert und müssen dann auch nicht wieder demaskiert werden.

Falls du das von deinen Formulardaten her so gewohnt bist - sprich: sie entgegennimmst und "addslashed" in die Datenbank einfügst, und beim Auslesen stripslashes() anwendest, um keine überflüssigen Slashes in der Ausgabe stehen zu haben - liegt das eventuell an einem PHP-Feature namens Magic Quotes.

echo "$verabschiedung $name";