dies ist eine Antwort auf Dein Doppelposting:
Danke für deine Hilfe. Da ich leider mit den bisherigen Antworten mein Problem nicht lösen konnte habe ich nach langen googeln noch eine Lösung gefunden. Aber leider war die Frage von heute bereits wieder ein ganz anderes Problem und ich dachte das dieses Thema niemand mehr beachten würde, da es kaum noch zu sehen ist ;-)
[code lang=php]
if ( $_POST["title_neu"] != ''
&& $_POST["title2_neu"] != ''
&& $_POST["text_neu"] != '' ) {Willst Du hier nicht eher isset() und empty() verwenden?
Danke für den Hinweis. Ich programmiere noch nicht sehr lange und kenne nicht unbedingt die besten Wege um ans Ziel zu kommen ;-)
$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.
Ich werde deine Ratschläge gerne befolgen und mich weiter über diese mir bisher nicht bekannten Funktionen informieren.
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()
Leider habe ich Svens Tipp auch zu spät gesehen. Dieser hätte mir schon mehr geholfen. Mir war leider nicht bewußt, das ich mit $_FILES['bild_neu']['name'] den Dateinamen bekomme. Dies war eigentlich schon das ganze Problem.
Ich entschuldige mich hier gerne nochmal für die 2. Frage, aber geholfen haben mir die bisherigen Antworten trotzdem nicht. Als Anfänger bin ich schon froh wenn ich Tipps bekomme wie ich die Abfragen und den Quellcode optimieren kann.
Aber hier geht es mir noch um die Frage, warum der mysql_insert die vorhandenen $POST_['titel_neu'], $POST_['titel_neu2'] und $POST_['titel_text'] nicht in die Datenbank schreibt, wenn ich eine File per Formular mit übergebe.
Der insert wird ja ausgeführt und danach auch der Dateiname in die letze Spalte geschrieben, aber trotzdem werden die vorhandenen Werte als Leere Spalten eingetragen. Und Mysql gibt leider auch keinen Fehler zurück.
Mfg
Marco