Email check

Antoniodc

Mitglied
Hi zusammen,

versuche gerade eine email check. Wo muss ich denn den Code:
PHP:
 <?php
if($senden) {
  if(!eregi("^[a-z0-9\._-]+@+[a-z0-9\._-]+\.+[a-z]{2,4}$",
  $_POST['email'])) {
    echo "<font color=#FF0000>Ung&uuml;ltige Email-Adresse!</font>";
    exit;}
}
?>

eingeben? Bekomme es nicht hin

Der Script geht so:
PHP:
<?php

$Empfaenger = "info@test.de";

if($_REQUEST['Send'])
{
if(empty($_REQUEST['Name']) || empty($_REQUEST['Email']) || empty($_REQUEST['Telefon'])|| empty($_REQUEST['Code']) || empty($_REQUEST['Werkstatt']) || empty($_REQUEST['Kontakt']))
{
echo"Bitte gehen Sie <a href=\"javascript:history.back();\">zurück</a> und füllen Sie alle markierten Felder aus!";
}
else
{
$Mailbetreff = "Kontakt: Franchise/Service Point";
$Mailbetreff .= $_REQUEST['Betreff'];

$Trenner = md5(uniqid(time()));

$Header = "From: ".$_REQUEST['Email'];
$Header .= "\n";
$Header .= "MIME-Version: 1.0";
$Header .= "\n";
$Header .= "Content-Type: multipart/mixed; boundary=$Trenner";
$Header .= "\n\n";
$Header .= "This is a multi-part message in MIME format";
$Header .= "\n";
$Header .= "--$Trenner";
$Header .= "\n";
$Header .= "Content-Type: text/plain";
$Header .= "\n";
$Header .= "Content-Transfer-Encoding: 8bit";
$Header .= "\n\n";
$Header .= "Sie haben folgende Nachricht erhalten: \n\n";

while(list($Formularfeld, $Wert) = each($_REQUEST))
{
if($Formularfeld != "Send" && $Formularfeld != "Anhang")
{
$Header .= $Formularfeld.": ".$Wert."\n";
}
}

$Header .= "\nDatum/Zeit: ";
$Header .= date("d.m.Y H:i:s");
$Header .= "\n";
$Header .= "--$Trenner";
$Header .= "\n";
$Header .= "Content-Type: ";
$Header .= $_FILES['Anhang']['type'];
$Header .= "; name=";
$Header .= $_FILES['Anhang']['name'];
$Header .= "\n";
$Header .= "Content-Transfer-Encoding: base64";
$Header .= "\n";
$Header .= "Content-Disposition: attachment; filename=";
$Header .= $_FILES['Anhang']['name'];
$Header .= "\n\n";
$Header .= chunk_split(base64_encode($Dateiinhalt));
$Header .= "\n";
$Header .= "--$Trenner--";

mail($Empfaenger, $Mailbetreff, "", $Header);
echo"<p>Vielen Dank für Ihre eMail!<br> In der Regel beantworten wir ihre Anfrage innerhalb der nächsten 24 Stunden. <br>Ihr GTM Team</p>";
}
}
else
{ ?>
<table border="0" cellpadding="1" cellspacing="2">
<form action="<?php echo$_SERVER['PHP_SELF']; ?>" enctype="multipart/form-data" method="post">
<h1>Kontaktformular</h1>
<p>Bitte füllen Sie alle mit * markierten Felder aus. (Pflichtfelder)</p>
<tr>
<td>Ihr Name*:</td>
<td><input name="Name" size="20" type="text"></td>
</tr>
<tr>
<td>Firma:</td>
<td><input name="Firma" size="20" type="text"></td>
</tr>
<tr>
<td>Strasse:</td>
<td><input name="Strasse" size="20" type="text"></td>
</tr>
<tr>
<td>PLZ / Ort:</td>
<td><input name="Ort" size="20" type="text"></td>
</tr>
<tr>
<td>Telefon*:</td>
<td><input name="Telefon" size="20" type="text"></td>
</tr>
<tr>
<td>Ihre eMail-Adresse*:</td>
<td><input name="Email" id="email" size="20" type="text"></td>
</tr>
<tr>
<tr><td align="left" valign="top">Ihre Kontaktanfrage*:</td>
<td>
<input type="checkbox" class="Check" name="Kontakt" value="Franchise"> Franchise<br>
<input type="checkbox" class="Check" name="Kontakt" value="Service Point"> Service Point
</td>
<tr><td align="left" valign="top">Wekstatt*:</td>
<td>
<input type="checkbox" class="Check" name="Werkstatt" value="vorhanden"> vorhanden<br>
<input type="checkbox" class="Check" name="Werkstatt" value="Nicht vorhanden"> nicht vorhanden<br>
</td>
<tr>
<td>Ihre Nachricht:</td>
<td><textarea cols="25" name="Nachricht" rows="5"></textarea></td>
</tr>
<tr>
<td>Anhang:</td>
<td><input name="Anhang" size="20" type="file"></td>
</tr>
<td>Bitte geben sie den Sicherheitscode ein: "GTM"</td>
<td><input name="Code" size="20" type="text"></td>
</tr>
<tr>
<td align="right" colspan="2"><input name="Send" type="submit" value="Formular absenden"> <input name="Reset" type="reset" value="Formular Löschen"></td>
</tr>
</tr></form>
</table>
<?php
}
?>

Bedanke mich schon einmal für jede hilfe.

Gruß
Antoniodc
 
Zuletzt bearbeitet:
Warum das Rad neu erfinden? PHP bietet diese Funktion bereits an.
PHP:
$email=filter_input(INPUT_POST, 'email', FILTER_VALIDATE_EMAIL);
if($eamil===false){
    //TODO: Invalid Email
};
 
Und wo setze ich das rein? Also in welcher Position.Bin schon den ganzen Tag dran.

Bis jetzt habe ich das so gelöst, leider gibt er mir die Fehlermeldung auch aus, wenn die Email korrekt ist.


PHP:
if($_REQUEST['Send'])
{
if(empty($_REQUEST['Name']) || empty($_REQUEST['Email']) || empty($_REQUEST['Telefon'])|| empty($_REQUEST['Code']) || empty($_REQUEST['Werkstatt']) || empty($_REQUEST['Kontakt']))
{
echo"Bitte gehen Sie <a href=\"javascript:history.back();\">zurück</a> und füllen Sie alle markierten Felder aus!";
}
elseif($_REQUEST['Send']) {
  if(!eregi("^[a-z0-9\._-]+@+[a-z0-9\._-]+\.+[a-z]{2,4}$",
  $_POST['email'])) {
    echo "Bitte gehen sie <a href=\"javascript:history.back();\">zurück</a> und geben eine g&uuml;ltige Email-Adresse ein!</font>";
    exit;}
}

else
{
$Mailbetreff = "Kontakt: Franchise/Service Point";
$Mailbetreff .= $_REQUEST['Betreff'];

$Trenner = md5(uniqid(time()));
 
item: Wo ist der Unterschied zu deinem ersten Posting?

item: Was für eine Fehlermeldung kommt den da so?

item: Den folgenden Code durch meinen ersetzen. Aber du weisst doch selber wo in deinem Code die Email getestet wird.....
PHP:
  if(!eregi("^[a-z0-9\._-]+@+[a-z0-9\._-]+\.+[a-z]{2,4}$",
  $_POST['email'])) {
    echo "Bitte gehen sie <a href=\"javascript:history.back();\">zurück</a> und geben eine g&uuml;ltige Email-Adresse ein!</font>";
    exit;}
Achja, der TODO-Teil meines Scriptes muss natürlich noch von dir angepasst werden.

item: Due arbeitest mal mit REQUEST und dann wieder mit POST. Kommen deine Daten über POST oder GET? Von REQUEST kann ich dir nur abraten.
 
Bei ersten post hatte ich die Position der Email überprüfung nicht drin, nur den text.

Es kommt immer der Text: "Bitte gehen Sie zurück und geben eine gültige Email-Adresse ein!", obwohl die Email Adresse korrekt ist.
 
Hast du mein Code getestet ode erwartest du dass wir dein Pattern prüfen?
Das 2te kannst du gut und gerne zum Beispiel auf http://regexp-evaluator.de/ testen.

Und wie siehts aus? Übergibst du die Werte nun mot POST oder GET?
 
Also REQUEST ist GET oder POST. Und da du so nicht weisst woher etwas kommt solltest du REQUEST meiden.
In deinem Script prüfst du die Email auf POST. Also POST oder GET. REQUEST ist keine Antwort.
 
Zurück