Distructive
07.01.2007, 21:16:27
Hi
ich habe ein Formular mit mehreren Textfeldern und der möglichkeit ein bild anzuhängen.
Die auswertung ist auf der selben seite und wird durch eine if-abfrage und einem hidden feld realisiert. Wenn ich nun alle felder eintrage, aber kein bild anhänge(was auch möglich ist) dann bekomme ich bei der if-abfrage:
if (isset($_FILES["bild"]))
den wert true, also er versucht den upload durchzuführen und bleibt bei der zweiten if-abfrage hängen, da ja keine datei angegeben wurde.
WIe kann ich nun abfragen ob wirklich eine datei angehängt wurde???
if (isset($_FILES["bild"])) {
// Upload-Status
if ($_FILES["bild"]["error"] == UPLOAD_ERR_OK) {
// Muster zur Überprüfung der im Dateinamen
// enthaltenen Zeichen (Optional)
$regExp = "/^[a-z_]([a-z0-9_-]*\.?[a-z0-9_-])*\.[a-z]{3,4}$/i";
// Dateiname und Dateigrösse
if (preg_match($regExp,$_FILES["bild"]["name"]) && $_FILES["bild"]["size"] > 0 && $_FILES["bild"]["size"] < 1000000) {
// Temporäre Datei in das Zielverzeichnis
// des Servers verschieben.
move_uploaded_file($_FILES["bild"]["tmp_name"],"bilder/".$bildname);
// Redirect zur Erfolgs-Meldung
$bild_ok=1;
}
else {
$bild_ok=3;
}
}
else {
$bild_ok=4;
}
}
else {
$bild_ok=1;
}
ich habe ein Formular mit mehreren Textfeldern und der möglichkeit ein bild anzuhängen.
Die auswertung ist auf der selben seite und wird durch eine if-abfrage und einem hidden feld realisiert. Wenn ich nun alle felder eintrage, aber kein bild anhänge(was auch möglich ist) dann bekomme ich bei der if-abfrage:
if (isset($_FILES["bild"]))
den wert true, also er versucht den upload durchzuführen und bleibt bei der zweiten if-abfrage hängen, da ja keine datei angegeben wurde.
WIe kann ich nun abfragen ob wirklich eine datei angehängt wurde???
if (isset($_FILES["bild"])) {
// Upload-Status
if ($_FILES["bild"]["error"] == UPLOAD_ERR_OK) {
// Muster zur Überprüfung der im Dateinamen
// enthaltenen Zeichen (Optional)
$regExp = "/^[a-z_]([a-z0-9_-]*\.?[a-z0-9_-])*\.[a-z]{3,4}$/i";
// Dateiname und Dateigrösse
if (preg_match($regExp,$_FILES["bild"]["name"]) && $_FILES["bild"]["size"] > 0 && $_FILES["bild"]["size"] < 1000000) {
// Temporäre Datei in das Zielverzeichnis
// des Servers verschieben.
move_uploaded_file($_FILES["bild"]["tmp_name"],"bilder/".$bildname);
// Redirect zur Erfolgs-Meldung
$bild_ok=1;
}
else {
$bild_ok=3;
}
}
else {
$bild_ok=4;
}
}
else {
$bild_ok=1;
}