Hallo,
ich habe ein Formular, welches zwar funktioniert, aber nicht funktioniert, wenn es nicht funktioniert.
Also Pflichtfelder werden überpüft, wenn alles okay, Email senden.
Das Ding ist, wenn ich alle Pflichtfelder leer lasse, aber eine Datei zum Uploaden auswählen, submit -> es lädt so lange, bis die Datei auf dem Server ist. Das ist doch Schwachsinn, weil die Pflichtfelder sowieso leer sind.
Sobald der fertig ist mit dem Laden, kommen erst die Fehlermeldungen ("Bitte ausfüllen, etc.")... und neben dem "Datei auswählen" Button wird dann das temporäre Verzeichnis ausgegeben. -.- Nicht gut.
Script:
ich habe ein Formular, welches zwar funktioniert, aber nicht funktioniert, wenn es nicht funktioniert.

Also Pflichtfelder werden überpüft, wenn alles okay, Email senden.
Das Ding ist, wenn ich alle Pflichtfelder leer lasse, aber eine Datei zum Uploaden auswählen, submit -> es lädt so lange, bis die Datei auf dem Server ist. Das ist doch Schwachsinn, weil die Pflichtfelder sowieso leer sind.
Sobald der fertig ist mit dem Laden, kommen erst die Fehlermeldungen ("Bitte ausfüllen, etc.")... und neben dem "Datei auswählen" Button wird dann das temporäre Verzeichnis ausgegeben. -.- Nicht gut.
Script:
PHP:
<?php
if (isset($_POST['submit'])) { // wenn Formuluar abgeschickt. name="submit"
$ausgabe = ''; // Ausgabe standardmäßig leer.
$fehler = ''; // Keine Fehlermeldung vorhanden beim Erstaufruf.
// Fallunterscheidungen für die einzelnen Felder hier.
if(isset($_POST['pname']) && !is_array($_POST['pname']) && $_POST['pname'] != '') { // Name, Vorname
$ausgabe .= '<b>Name:</b> ' . htmlspecialchars($_POST['pname']) . '<br>';
} else {
$fehler .= 'Bitte Namen eingeben!<br>'; // Fehlermeldung, hier also ein Pflichtfeld. Fehlermeldung anhängen.
}
// wenn also hier Name nicht eingegeben, soll es gar nicht zum Fileupload kommen.
// break? oder was muss ich machen?
if(isset($_FILES['datei'])) { // wenn Datei ($datei) vorhanden
$ausgabe .= '<b>Dateiname:</b> ' . htmlspecialchars($_FILES['datei']['name']); // Dateiname
move_uploaded_file($_FILES['datei']['tmp_name'], // vom Temp Ordner in angegebenes Verzeichnis verschieben.
'domain/verzeichnis/' . basename($_FILES['datei']['name']));
$ausgabe .= ' <a href="http://domain.de/verzeichnis' . htmlspecialchars($_FILES['datei']['name']) . '" target="_blank">Datei öffnen</a><br>';
}
if ($fehler == '') { // Wenn keine Fehler vorhanden, also $fehler ist leer, dann...
$extra = "From: $pname <$pemail>\n";
$extra .= "Content-Type: text/html\n";
mail('$admin','Subject', $ausgabe, $extra);
mail($besucher, 'Subjekt', $pantwort, "From: domain.de <$admin>");
include("footer.php");
exit();
}
}