Hallo zusammen.
Habe folgendes Problem mit meinem Kontaktformular:
Bei Eingabe von Umlauten im dafür vorgesehenen Textfeld bzw. Namensfeld wird mir eine Fehlermeldung ausgegeben.
Ich kann keinen Fehler ausmachen, bin daher dankbar für alle Hilfe.
Gruß, arabit
PHP
<?php
function showError($aErrors)
{
if (!empty($aErrors)) {
echo '<div class="error">';
if (count($aErrors) > 1) {
echo '<p>Folgende Fehler sind aufgetreten:</p>';
} else {
echo '<p>Folgender Fehler ist aufgetreten:</p>';
}
echo '<ul>';
foreach ($aErrors as $sValue) {
echo '<li>' . $sValue . '</li>';
}
echo '</ul>';
echo '</div>';
}
}
if (isset($_POST['submit'])) {
$aErrors = array();
if (!$_POST['name']) {
$aErrors[] = "Bitte geben Sie ihren Namen an!";
} elseif (!preg_match('/^[[:print:][:space:]]{1,}$/', $_POST['name'])) {
$aErrors[] = "Dieser Name ist ungültig!";
}
if (!$_POST['email']) {
$aErrors[] = "Bitte geben Sie ihre E-Mail an!";
} elseif (!preg_match('/^[\w.+-]{2,}\@[\w.-]{2,}\.[a-z]{2,6}$/', $_POST['email'])) {
$aErrors[] = "Diese E-Mailadresse ist ungültig!";
}
if (!$_POST['text']) {
$aErrors[] = "Bitte geben Sie ihre Nachricht ein!";
} elseif (!preg_match('/^[[:print:][:space:]]{1,}$/', $_POST['text'])) {
$aErrors[] = "Dieser Text ist ungültig!";
}
if (empty($aErrors)) {
$date = date('d.m.Y - H:i');
$sender = $_POST['email'];
$header = "From:" . $sender;
$mailtext = $_POST['name'] . " schrieb am " . $date . " in das Formular:\n\nNachricht:\n\n" . $_POST['text'];
$subject = "Das Kontaktformular wurde von " . $_POST['name'] . " ausgefüllt.";
$mailto = "xxx@xxx.com"; mail($mailto, $subject, $mailtext, $header);
}
}
?>
Alles anzeigen
PHP
<?php
echo showError($aErrors);
if (!isset($_POST['submit']) || !empty($aErrors)) {
?>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post" enctype="multipart/form-data">
<label for="name">Name:</label>
<input type="text" name="name" value="<?php echo $_POST['name']; ?>" id="name"<?php if (isset($_POST['submit']) && !$_POST['name']) { echo ' class="error"'; } ?> />
<br />
<label for="email">E-Mail:</label>
<input type="text" name="email" value="<?php echo $_POST['email']; ?>" id="email"<?php if (isset($_POST['submit']) && (!$_POST['email'] || !stristr($_POST['email'], "@") || !stristr($_POST['email'], "."))) { echo ' class="error"'; } ?> />
<br />
<label for="text">Nachricht:</label>
<textarea name="text" id="text"<?php if (isset($_POST['submit']) && !$_POST['text']) { echo ' class="error"'; } ?>><?php echo $_POST['text']; ?></textarea>
<br />
<input type="submit" name="submit" value="senden" class="button" />
<br />
</form>
<?php } else { ?>
<p class="eins">Danke für Ihre Mitteilung. Sie erhalten in Kürze Antwort. </p>
<?php } ?>
Alles anzeigen