Vinzenz Mai: weitere Probleme mit Dateiupload und -verarbeitung

Beitrag lesen

Hallo Marco

dies ist eine Antwort auf Dein Doppelposting:

[code lang=php]

if (    $_POST["title_neu"]  != ''

&& $_POST["title2_neu"] != ''
        && $_POST["text_neu"]   != '' ) {

Willst Du hier nicht eher isset() und empty() verwenden?

$insert=@mysql_query("INSERT INTO loesungen VALUES (
  '',
  '".$title_neu."',
  '".$title2_neu."',
  '".$text_neu."',
  ''
)");

Es ist erstens eine gute Idee, die Abfrage in einer eigenen Variablen zusammenzubauen, die man zu Debug-Zwecken ausgeben lassen kann. Das erspart manch' unliebsame Überraschung.
Zweitens solltest Du die Eingaben validieren und vor dem Schreiben in die Datenbank mit  mysql_real_escape_string() behandeln. Ggf. musst Du vorher die Einstellung magic_quotes_gpc überprüfen.
Drittens solltest überprüfen, ob mysql_query eventuell einen Fehler zurückliefert und diesen entsprechend behandeln, anstatt die Fehlermeldung einfach zu unterdrücken.

if ($bild_neu!='') {
  $id=mysql_insert_id();
  $dateiname=$_FILES['bild_neu']['name'];
  $dateiendung=substr($dateiname,-3);

Du hast Svens Tipp nicht befolgt :-(

$file=$id.".".$dateiendung;
  @copy($bild_neu,"images/loesungen/$file");

Du hast noch mehr Tipps nicht befolgt.

Der Handbuchabschnitt über Dateiupload kann auch nichts schaden, Du solltest hier nicht mit copy() arbeiten, sondern mit move_uploaded_file()

$update_bild=@mysql_query("UPDATE loesungen SET
   bild='".$file."'
  WHERE id='".$id."'");

s.o.

Freundliche Grüße

Vinzenz