Vinzenz Mai: Formular > MySQL mit Dateiupload

Beitrag lesen

Hallo

ich bin Anfänger in PHP und hoffe, ich habe ein ähnliches Thema im Forum nicht übersehen.

$fp = fopen($tmpName, 'r');
  $content = fread($fp, $fileSize);
  $content = addslashes($content);

Nein, es ist überhaupt keine gute Idee, den content mit irgendwelchen völlig überflüssigen Escape-Zeichen zu verunstalten.

fclose($fp);

if(!get_magic_quotes_gpc())
  {
   $fileName = addslashes($fileName);

addslashes ist für Speichern in Datenbanken ein ungeeigneter Maskierungsmechanismus. Diese Stelle hier ist zudem die falsche Stelle.

$query = "INSERT INTO newsflash (rubrikid, ueberschrift, textfeld, name, size, type, content ) ".
           "VALUES ('$rubrikid','$ueberschrift','$textfeld','$fileName', '$fileSize', '$fileType', '$content')";

Hier bringst Du den Inhalt diverser Variablen in einen SQL-Kontext, speziell für MySQL.

mysql_query($query) or die('Error, query failed');

Da Du die verbreiteten, aber auch veralteten mysql_*-Funktionen verwendest, wäre mysql_real_escape_string
die passende Funktion. Ich empfehle jedoch die Verwendung der verbesserten MySQL-Erweiterung.

Freundliche Grüße

Vinzenz