Hallo ich hab grad ein Kontaktformular geschrieben. Ich wollte gerne noch einen Test der Mailadresse einbauen. Mein Script sieht zur Zeit so aus:
<body>
<h1>Kontakt</h1>
<form action="<?php echo $PHP_SELF ?>" method="POST">
<?php
if (isset($_POST['submit']))
{
$feld = "";
if (strlen($_REQUEST['mail'])==0) {
$feld = "EMail";
$art = "Keine Eingabe";
}
if (preg_match("/[1]+(.[_a-zA-Z0-9-]+)*@([a-zA-Z0-9-]+.)+([a-zA-Z]{2,4})/", $_REQUEST["mail"])) {
$feld = "Email";
$art = "Keine Emailadresse";
}
if (preg_match("/[^a-zßöüä_.- ]/i", $_REQUEST['name'])) {
$feld = "Name";
$art = "Ungültige Zeichen";
}
if (strlen($_REQUEST['text1'])==0) {
$feld = "Ihre Nachricht";
$art = "Keine Eingabe";
}
if ($tele == "y") {
if (strlen($_REQUEST['tel'])==0) {
$feld = "Telefon";
$art = "Keine Eingabe";
}
else if (preg_match("/[^0-9+\ /]/", $_REQUEST['tel'])) {
$feld = "Telefonnumer";
$art = "Ungültige Zeichen";
}
}
else{
if (preg_match("/[^0-9+\ /]/", $_REQUEST['tel'])) {
$feld = "Telefonnumer";
$art = "Ungültige Zeichen";
}
}
if ($feld != "")
{
echo "<center>$art bei Feld "$feld"<br>";
echo '<a href="'.$_SERVER['PHP_SELF'].'">ändern</a></center>';
}
else{
$extra = "From: $mail\r\n";
$extra .= "Content-Type: text/html\r\n Content-Transfer-Encoding:8bit\r\n";
$extra .= "X-Mailer: PHP ". phpversion();
if ($tele == "y") $text = "<body bgcolor='#4A0000'><table>
<tr><td><b><font color='#999545'>Anfrage von :</font></b></td><td><font color='#999545'>$name</font></td></tr>
<tr><td><b><font color='#999545'>Telefonnummer :</font></b></td><td><font color='#999545'>$tel</font></td></tr>
<tr><td colspan='2'><b><font color='#999545'>Rückruf erwünscht!</font></b></td></tr>
<tr><td width='140'><b><font color='#999545'>Anfrage :</font></b></td><td width='200'><font color='#999545'>$text1</font></td></tr>
</table>";
else $text = "<body bgcolor='#4A0000'><table>
<tr><td><b><font color='#999545'>Anfrage von :</font></b></td><td><font color='#999545'>$name</font></td></tr>
<tr><td><b><font color='#999545'>Telefonnummer :</font></b></td><td><font color='#999545'>$tel</font></td></tr>
<tr><td width='120'><b><font color='#999545'>Anfrage :</font></b></td><td wisth='200'><font color='#999545'>$text1</font></td></tr>
</table>";
mail("webmaster@himmelsbaeckerei.de", "Anfrage", $text, $extra);
echo '<h5>Ihre Email wurde an uns gesendet!<h5><br>Herzlichen Dank für die Anfrage.';
}
}
else
{
echo"<table align='center'>
<tr>
<td>Name </td>
<td><input type='text' class='inputbox' name='name' size='33'></td>
</tr>
<tr>
<td>EMail* </td>
<td><input type='text' class='inputbox' name='mail' size='33'></td>
</tr>
<tr>
<td>Telefon </td>
<td><input type='text' class='inputbox' name='tel' size='33'></td>
</tr>
<tr>
<td></td>
<td><input type='checkbox' name='tele' value='y'> Bitte rufen Sie mich zurück.</td>
</tr>
<tr>
<td>Ihre Nachricht* </td>
<td><textarea name='text1' class='inputbox' rows='5' cols='30'></textarea></td>
</tr>
<tr>
<td colspan='2'><center>* Erforderlich</center>
</td>
</tr>
<tr>
<td colspan='2'><center><input type='submit' class='select' name='submit' value='Absenden'>
<input type='reset' class='select' value='Zurücksetzen'></center></td>
</tr>
</table>";
}
?>
</form>
</body>
Der Test der Mailadresse ob sie mit @ Zeichen ist funktioniert aber nicht. Nur ob überhaupt etwas eingegeben ist. Was habe ich falsch gemacht?
Wäre cool wenn mir jemand helfen könnte.
_a-zA-Z0-9- ↩︎