mactrisha
Aktives Mitglied
Thread Starter
- Dabei seit
- 27.11.2003
- Beiträge
- 744
- Reaktionspunkte
- 17
Hi all,
über drei Datei-Browser-Felder in einem einzigen Formular <form action="diesedatei.php" method="post" name="eintragen" enctype="multipart/form-data"> lade ich über
<input type="file" name="nl_bildurl_01" size="55" >
<input type="file" name="nl_bildurl_02" size="55" >
<input type="file" name="nl_bildurl_03" size="55" >
drei Bilder in je ein dazugehöriges Verzeichnis (upload_01/, upload_02/ und upload_03/), gleichzeitig schreibt sich der Pfad der Datei in eine Datenbank in dieser Form "upload_01/dateinameausdateibrowser.jpg", "upload_02/dateinameausdateibrowser.jpg" und "upload_03/dateinameausdateibrowser.jpg". Bleibt ein Datei-Browser leer, geht das ganze Script nicht oder es schreibt sich in Felder der Datenbank, die eigentlich leer bleiben sollten der Teilpfad z.B. "upload_02" ein. Das Datenbankfeld soll aber ganz frei bleiben.
Es funktioniert auch alles soweit, aber nur, wenn ich auch immer drei Bilder hochlade. Ich will aber nicht immer alle drei Bilder hochladen, sondern mal nur eines, mal zwei und mal alle drei. Wie kann ich jetzt bitte den Code ergänzen, dass wenn nur ein Bild hochgeladen wird, die anderen beiden Felder der Datenbank komplett leer bleibe? Ich will aber auch keine Kontrollebedingungen mit nachfolgenden Warnungen, dass Formularfelder (sprich Datei-Browser) leer bleiben, sondern wenn der User will, dann sollen sie leer bleiben. Es soll auch möglich sein, dass gar kein Bild upgelodet wird (es werden nämlich auch noch Texteingaben mit diesem Form in Datenbankfelder übertragen). Der Code ist bestimmt nicht schick, mit dem dreimaligen if... oder? Aber ich habe ihn selbst gemacht, um es zu verstehen und zu lernen ... bitte um Hilfe.
Salü,
mactrisha.
über drei Datei-Browser-Felder in einem einzigen Formular <form action="diesedatei.php" method="post" name="eintragen" enctype="multipart/form-data"> lade ich über
<input type="file" name="nl_bildurl_01" size="55" >
<input type="file" name="nl_bildurl_02" size="55" >
<input type="file" name="nl_bildurl_03" size="55" >
drei Bilder in je ein dazugehöriges Verzeichnis (upload_01/, upload_02/ und upload_03/), gleichzeitig schreibt sich der Pfad der Datei in eine Datenbank in dieser Form "upload_01/dateinameausdateibrowser.jpg", "upload_02/dateinameausdateibrowser.jpg" und "upload_03/dateinameausdateibrowser.jpg". Bleibt ein Datei-Browser leer, geht das ganze Script nicht oder es schreibt sich in Felder der Datenbank, die eigentlich leer bleiben sollten der Teilpfad z.B. "upload_02" ein. Das Datenbankfeld soll aber ganz frei bleiben.
PHP:
/* Dieser Code lädt mein Bild 1 up, das ganze habe ich dreimal geschrieben */
if ($_POST["eintragen"]) {
if ($_FILES["nl_bildurl_01"]["error"] != 4) {
$nl_zielname_01 = "upload_01/".$_FILES["nl_bildurl_01"]["name"];
move_uploaded_file($_FILES["nl_bildurl_01"]["tmp_name"] , "upload_01/".$_FILES["nl_bildurl_01"]["name"]);
/* Jetzt diese if-Bedingung noch zweimal für die anderen Bilder 02 und 03 */
/* Dieser Code schreibt den Dateipfad in meine Datenbank */
$wert = "INSERT into $tname VALUES (
'$nl_zielname_01',
'$nl_zielname_02',
'$nl_zielname_03')";
Es funktioniert auch alles soweit, aber nur, wenn ich auch immer drei Bilder hochlade. Ich will aber nicht immer alle drei Bilder hochladen, sondern mal nur eines, mal zwei und mal alle drei. Wie kann ich jetzt bitte den Code ergänzen, dass wenn nur ein Bild hochgeladen wird, die anderen beiden Felder der Datenbank komplett leer bleibe? Ich will aber auch keine Kontrollebedingungen mit nachfolgenden Warnungen, dass Formularfelder (sprich Datei-Browser) leer bleiben, sondern wenn der User will, dann sollen sie leer bleiben. Es soll auch möglich sein, dass gar kein Bild upgelodet wird (es werden nämlich auch noch Texteingaben mit diesem Form in Datenbankfelder übertragen). Der Code ist bestimmt nicht schick, mit dem dreimaligen if... oder? Aber ich habe ihn selbst gemacht, um es zu verstehen und zu lernen ... bitte um Hilfe.
Salü,
mactrisha.