Hallo Zusammen,
hab da ein kleines Problem und wollt Euch um Rat fragen:
Es geht um mein Kontaktformular, das eigentlich sehr gut und einfach funktioniert. ABER eben nicht beim IE und Safari MAC OS. Da kann ich das Formular ohne Einträge einfach wegschicken, also leer obwohl die Felder mit einem "required" ausgezeichnet sind. Das ganze funktioniert bei win unter Safari und Firefox hervorragend.
Habt Ihr mir Rat ?
Danke schon mal.
Gruß Micha
hab da ein kleines Problem und wollt Euch um Rat fragen:
Es geht um mein Kontaktformular, das eigentlich sehr gut und einfach funktioniert. ABER eben nicht beim IE und Safari MAC OS. Da kann ich das Formular ohne Einträge einfach wegschicken, also leer obwohl die Felder mit einem "required" ausgezeichnet sind. Das ganze funktioniert bei win unter Safari und Firefox hervorragend.
Habt Ihr mir Rat ?
Danke schon mal.
Gruß Micha
PHP:
<?php
// ======= Text der Mail aus den Formularfeldern erstellen:
// Wenn Daten mit method="post" versendet wurden:
if(isset($_POST)) {
// alle Formularfelder der Reihe nach durchgehen:
foreach($_POST as $name => $value) {
// Wenn der Feldwert aus mehreren Werten besteht:
// (z.B. <select multiple>)
if(is_array($value)) {
// "Feldname:" und Zeilenumbruch dem Mailtext hinzufügen
$mailText .= $name . ":\n";
// alle Werte des Feldes abarbeiten
foreach($valueArray as $entry) {
// Einrückungsleerzeichen, Wert und Zeilenumbruch
// dem Mailtext hinzufügen
$mailText .= " " . $value . "\n";
} // ENDE: foreach
} // ENDE: if
// Wenn der Feldwert ein einzelner Feldwert ist:
else {
// "Feldname:", Wert und Zeilenumbruch dem Mailtext hinzufügen
$mailText .= $name . ": " . $value . "\n";
} // ENDE: else
} // ENDE: foreach
} // if
// ======= Korrekturen vor dem Mailversand
// Wenn PHP "Magic Quotes" vor Apostrophzeichen einfügt:
if(get_magic_quotes_gpc()) {
// eventuell eingefügte Backslashes entfernen
$mailtext = stripslashes($mailtext);
}
// ======= Mailversand
// Mail versenden und Versanderfolg merken
$mailSent = @mail($mailTo, $mailSubject, $mailText, "From: ".$mailFrom);
// ======= Return-Seite an den Browser senden
// Wenn der Mailversand erfolgreich war:
if($mailSent == TRUE) {
// Seite "Formular verarbeitet" senden:
header("Location: " . $returnPage);
}
// Wenn die Mail nicht versendet werden konnte:
else {
// Seite "Fehler aufgetreten" senden:
header("Location: " . $returnErrorPage);
}
// ======= Ende
exit();
?>
HTML:
<h1>Kontaktformular</h1>
<form method="post" action="/form-mailer.php">
<fieldset>
<div class="textfeld">
<label for="name">Ihr Name</label>
<input type="text" name="name" id="name" autofocus required />
</div>
<div class="textfeld">
<label for="mail">Ihre E-Mail</label>
<input type="email" name="mail" id="mail" required="required"/>
</div>
<div class="textfeld">
<label for="betreff">Betreff</label>
<input type="tel" name="betreff" id="betreff" />
</div>
<div class="textfeld">
<label for="nachricht">Ihre Nachricht</label>
<textarea name="nachricht" id="nachricht" rows="10" cols="20"></textarea>
</div>
<div class="submitbutton">
<input type="submit" value="Absenden" />
</div>
</fieldset>
</form>