Hi Leute und schönen guten Abend!
Ich verzweifel noch an meinem Script mit dem ich u.a. Bilder uploaden möchte...
Derzeitiger Stand:
Ich habe einen Shop kreiert ("zusammengebastelt"). Der läuft soweit auch einwandfrei.
Nun habe ich eine Adminoberfläche, in welcher ich u.a. neue Produkte mit einem Bild hinzufügen
kann. Funktioniert auch einwandfrei und wird fehlerfei angezeigt.
Mein nächster Schritt war es nun, dass Script so zu erweitern, dass ich 3 Bilder uploaden kann -
und da hängt's
Das Script, das die Artikeldaten speichert, sieht so aus:
Es werden auch alle Daten gespeichert. Auch das erste Bild mit der "$id.jpg" als Name und das zweite Bild mit "$id.2.jpg" - Soweit perfekt.
Aber das DRITTE Bild, das eigentlich "$id.3.jpg" heißen sollte, wird gar nicht auf den Server geladen...
WARUM
Die Daten an die DB werden auch richtig übergeben. Wenn ich zum Beispiel das erste Bild ("bild") uploade , steht auch nur bei "bild" in der DB "OK".
Wenn ich alle 3 Bilder uploade, steht bei allen 3 "OK" in der DB, aber im Ordner liegen nur die ersten beiden Dateien.
Wenn ich nur "bild2" und "bild3" uploade, zeigt er mir im Ordner wieder die beiden Dateien mit den richtigen Endungen "$id.2.jpg" und "$id.3.jpg" an.
Also läuft er wohl auch alle arrays durch und verarbeitet sie. Allerdings lässt er immer einen "aus". Kann sich das jemand erklären?
Hab schon alles mögliche ausprobiert und mich durchgegoogelt - find aber nix dazu. Ich hoffe hier kann mir jemand weiterhelfen...
Sorry für den langen Text
MICHA
Ich verzweifel noch an meinem Script mit dem ich u.a. Bilder uploaden möchte...
Derzeitiger Stand:
Ich habe einen Shop kreiert ("zusammengebastelt"). Der läuft soweit auch einwandfrei.
Nun habe ich eine Adminoberfläche, in welcher ich u.a. neue Produkte mit einem Bild hinzufügen
kann. Funktioniert auch einwandfrei und wird fehlerfei angezeigt.
Mein nächster Schritt war es nun, dass Script so zu erweitern, dass ich 3 Bilder uploaden kann -
und da hängt's
Das Script, das die Artikeldaten speichert, sieht so aus:
PHP-Code:
<? // Includes
error_reporting(E_ALL ^ E_NOTICE);
ini_set('display_errors', true);
mysql_error();
include ("../config.php");
// Variablen Deklaration
if (!isset($_POST['artikelnummer']))$_POST['artikelnummer'] = "";
if (!isset($_POST['name'])) $_POST['name'] = "";
if (!isset($_POST['beschreibung'])) $_POST['beschreibung'] = "";
if (!isset($_POST['preis'])) $_POST['preis'] = "";
if (!isset($_POST['variante1'])) $_POST['variante1'] = "";
if (!isset($_POST['variante2'])) $_POST['variante2'] = "";
if (!isset($_POST['status'])) $_POST['status'] = "";
if (!isset($_POST['nkategorie'])) $_POST['nkategorie'] = "";
$post_vars['artikelnummer'] = htmlentities($_POST['artikelnummer'],ENT_QUOTES,$CHARSET);
$post_vars['name'] = htmlentities($_POST['name'],ENT_QUOTES,$CHARSET);
$post_vars['beschreibung'] = htmlentities($_POST['beschreibung'],ENT_QUOTES,$CHARSET);
$post_vars['preis'] = htmlentities($_POST['preis'],ENT_QUOTES,$CHARSET);
$post_vars['variante1'] = htmlentities($_POST['variante1'],ENT_QUOTES,$CHARSET);
$post_vars['variante2'] = htmlentities($_POST['variante2'],ENT_QUOTES,$CHARSET);
$post_vars['status'] = htmlentities($_POST['status'],ENT_QUOTES,$CHARSET);
$post_vars['nkategorie'] = htmlentities($_POST['nkategorie'],ENT_QUOTES,$CHARSET);
// Programm-Code
if (!$post_vars['artikelnummer']): $action = "error";
elseif (!$post_vars['name']): $action = "error";
elseif (!$post_vars['beschreibung']): $action = "error";
elseif (!$post_vars['preis']): $action = "error";
else: $action = "erfolg";
endif;
if ($action == "erfolg")
{
if (is_uploaded_file($_FILES['bild']['tmp_name'])) $bild1 = "ok";
if (is_uploaded_file($_FILES['bild2']['tmp_name'])) $bild22 = "ok";
if (is_uploaded_file($_FILES['bild3']['tmp_name'])) $bild33 = "ok";
if (!isset($bild1)) $bild1 = "";
if (!isset($bild22)) $bild22 = "";
if (!isset($bild33)) $bild33 = "";
$conn_id = mysql_connect($HOST,$ID,$PW);
mysql_select_db($DB,$conn_id);
mysql_query("insert into ".$PREFIX."_Artikel (kategorie,artikelnummer,name,beschreibung,preis,bild,bild2,
bild3,variante1,variante2,status) VALUES ('{$post_vars['nkategorie']}','{$post_vars['artikelnummer']}',
'{$post_vars['name']}','{$post_vars['beschreibung']}','{$post_vars['preis']}','$bild1','$bild22','$bild33',
'{$post_vars['variante1']}','{$post_vars['variante2']}','{$post_vars['status']}')");
{
if ($bild1 == "ok")
{
$result = mysql_query("select id from ".$PREFIX."_Artikel where name = '{$post_vars['name']}'");
while ($row = mysql_fetch_object($result))
{
$id = $row->id;
}
$fotoname = "$id.jpg";
{
move_uploaded_file(($_FILES['bild']['tmp_name']),"../images/artikel/$fotoname");
chmod ("../images/artikel/$fotoname", 0777);
}
mysql_close($conn_id);
}
header("Location: pro_index.php?action=$action");
if ($bild22 == "ok")
{
$result = mysql_query("select id from ".$PREFIX."_Artikel where name = '{$post_vars['name']}'");
while ($row = mysql_fetch_object($result))
{
$id = $row->id;
}
$fotoname2 = "$id.2.jpg";
{
move_uploaded_file(($_FILES['bild2']['tmp_name']),"../images/artikel/$fotoname2");
chmod ("../images/artikel/$fotoname2", 0777);
}
mysql_close($conn_id);
}
header("Location: pro_index.php?action=$action");
if ($bild33 == "ok")
{
$result = mysql_query("select id from ".$PREFIX."_Artikel where name = '{$post_vars['name']}'");
while ($row = mysql_fetch_object($result))
{
$id = $row->id;
}
$fotoname3 = "$id.3.jpg";
{
move_uploaded_file(($_FILES['bild3']['tmp_name']),"../images/artikel/$fotoname3");
chmod ("../images/artikel/$fotoname3", 0777);
}
mysql_close($conn_id);
}
header("Location: pro_index.php?action=$action");
}
}
else header("Location: pro_neu.php?artikelnummer={$post_vars['artikelnummer']}&name={$post_vars['name']}
&beschreibung={$post_vars['beschreibung']}&preis={$post_vars['preis']}&variante1={$post_vars['variante1']}
&variante2={$post_vars['variante2']}&action=$action");
?>
Aber das DRITTE Bild, das eigentlich "$id.3.jpg" heißen sollte, wird gar nicht auf den Server geladen...
WARUM
Die Daten an die DB werden auch richtig übergeben. Wenn ich zum Beispiel das erste Bild ("bild") uploade , steht auch nur bei "bild" in der DB "OK".
Wenn ich alle 3 Bilder uploade, steht bei allen 3 "OK" in der DB, aber im Ordner liegen nur die ersten beiden Dateien.
Wenn ich nur "bild2" und "bild3" uploade, zeigt er mir im Ordner wieder die beiden Dateien mit den richtigen Endungen "$id.2.jpg" und "$id.3.jpg" an.
Also läuft er wohl auch alle arrays durch und verarbeitet sie. Allerdings lässt er immer einen "aus". Kann sich das jemand erklären?
Hab schon alles mögliche ausprobiert und mich durchgegoogelt - find aber nix dazu. Ich hoffe hier kann mir jemand weiterhelfen...
Sorry für den langen Text
MICHA
Kommentar