MudGuard: multipart/form-data - file+input

Beitrag lesen

Hi,

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

Hier weißt Du, wie Du auf POST-Daten zugreifen solltest.

$insert=@mysql_query("INSERT INTO loesungen VALUES (
  '',
  '".$title_neu."',

Hier weißt Du es nicht mehr.
Wie ist die Variable $title_neu belegt? Ist sie es überhaupt?

'".$title2_neu."',
  '".$text_neu."',
  ''
)");
if ($bild_neu!='') {
  $id=mysql_insert_id();

Very risky.
Du prüfst nicht, ob der insert gutgegangen ist - ob also überhaupt eine neue id erzeugt wurde.

$dateiname=$_FILES['bild_neu']['name'];
  $dateiendung=substr($dateiname,-3);

Was auch immer Du als Dateiendung betrachtest (vermutlich das, was nach dem letzten Punkt kommt):
Das muß nicht 3 Zeichen lang sein, das kann sowohl kürzer sein (z.B. bla.js, bla.pl, ...) oder auch länger (z.B. bla.html, bla.properties, bla.jpeg ...)

@copy($bild_neu,"images/loesungen/$file");

Auch hier wäre eine Überprüfung des Erfolgs sinnvoll.

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

Same here - Überprüfe immer den Erfolg von Aktionen, die (theoretisch) schiefgehen können.

header("Location: ?go=text_loesungen");

Auch wenn die meisten Browser das mitmachen: hier muß eine vollständige Adresse genannt werden (läßt sich ja aus den automatisch existenten Variablen zusammensetzen).

cu,
Andreas

--
Warum nennt sich Andreas hier MudGuard?
Schreinerei Waechter
Fachfragen per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.