Explode um E-Mailadresse zu testen[UPDATE]
- witzigerkiller
- Gesperrt
- Beiträge: 878
- Registriert: 05.02.2005 13:27
- Wohnort: Sonthofen
- witzigerkiller
- Gesperrt
- Beiträge: 878
- Registriert: 05.02.2005 13:27
- Wohnort: Sonthofen
Ehm, ich hänge hier jetzt, meine Augen tuen schon weh, und kann den Fehler irgendwie nichteinmal ausgrenzen:
wäre net wenn sich das einer anschauen könnte.
Ps. Es wird immer falsch ausgegeben, also bei der funktion immer false zurückgegeben.
Danke
EDIT: strlen(); nicht eingebaut gehabt beim if
Code: Alles auswählen
ERROR_REPORTING(E_ALL);
// E-Mailadess
$Mail = "witzigerkiller@aol.com";
// Mail will explode
$mail_check_at = explode("@",$Mail);
$mail_check_dot = explode(".",$mail_check_at[1]);
// query mailadress
if (mail_check_length($mail_check_at,$mail_check_dot) == true)
{
echo "richtig";
}
else
{
echo "falsch";
}
// function to check the length of the mail
function mail_check_length($mail_check_at,$mail_check_dot)
{
if ($mail_check_at[0] >=2 && $mail_check_dot[0] >=3 && $mail_check_dot[1] >=2)
{
return true;
}
else
{
return false;
}
}
Ps. Es wird immer falsch ausgegeben, also bei der funktion immer false zurückgegeben.
Danke
EDIT: strlen(); nicht eingebaut gehabt beim if
Zuletzt geändert von witzigerkiller am 10.02.2006 23:42, insgesamt 1-mal geändert.
Bitte keine Anfragen mehr per PN
When you get me on my nerven I put you in the Gully and do the Deckel drüf and you never will come back to the Tageslicht.
When you get me on my nerven I put you in the Gully and do the Deckel drüf and you never will come back to the Tageslicht.
- witzigerkiller
- Gesperrt
- Beiträge: 878
- Registriert: 05.02.2005 13:27
- Wohnort: Sonthofen
UPDATE
So, nun habe ich es ein wenig ausgebaut, das schöne scriptchen....
Wie findet ihr es? was würdet ihr verbessern, bzw. ergänzen?
97 Zeilen Code für eine E-Mail *lol* bissl viel
Weis evtl. jemand wie der befehl heißt, damit ich die Sekunden, was sie jetzt noch net sind, aufrunden kann?
Danke
So, nun habe ich es ein wenig ausgebaut, das schöne scriptchen....
Wie findet ihr es? was würdet ihr verbessern, bzw. ergänzen?
97 Zeilen Code für eine E-Mail *lol* bissl viel
Code: Alles auswählen
<?PHP
//
// Time of beginning loading this page
//
$starttime = microtime();
ERROR_REPORTING(E_ALL);
//
// mailadress
//
$Mail = "asasa@sasas-swssas.coop"; // Wenn dann hier ändern
function mail_valide(&$Mail)
{
//
// function to check the length of the mail
//
function mail_check_length($mail_check_at,$mail_check_dot)
{
if (strlen($mail_check_at[0]) >=2 && strlen($mail_check_dot[0]) >=3 &&
strlen($mail_check_dot[1]) >=2)
{
return true;
}
else
{
return false;
}
}
//
// function to check the ending of the mail
//
function mail_check_ending($mail_check_dot)
{
$check_ending = array(
"de",
"aero",
"arpa",
"biz",
"com",
"coop",
"edu",
"gov",
"info",
"int",
"jobs",
"mil",
"mobi",
"museum",
"name",
"net",
"org",
"pro",
"travel");
$in_array = FALSE;
foreach ($check_ending as $mail_check)
{
if ($mail_check == $mail_check_dot[1])
{
$in_array = TRUE;
break;
}
}
return $in_array;
}
//
// Mail will explode
//
@$mail_check_at = explode("@",$Mail);
@$mail_check_dot = explode(".",$mail_check_at[1]);
//
// query mailadress
//
if (@mail_check_length($mail_check_at,$mail_check_dot) == true &&
@mail_check_ending($mail_check_dot) == true)
{
echo "Deine E-Mailadresse ist eine korrekte E-Mail";
}
else
{
echo "Deine E-Mailadresse ist eine inkorrekte E-Mail";
}
}
mail_valide($Mail);
//
// output time generation
//
$time = microtime() - $starttime;
echo "<br /><br />Die E-Mailüberprüfung dauerte <b>".$time."</b> Sekunden";
?>
Danke
Bitte keine Anfragen mehr per PN
When you get me on my nerven I put you in the Gully and do the Deckel drüf and you never will come back to the Tageslicht.
When you get me on my nerven I put you in the Gully and do the Deckel drüf and you never will come back to the Tageslicht.
- MagMo
- Ehemaliges Teammitglied
- Beiträge: 584
- Registriert: 30.10.2005 16:06
- Wohnort: Köln
- Kontaktdaten:
Hi,
ich würde folgendes ändern:
Ersetze den Befehl microtime() durch den Befehl time(). Dann brauchst du auch nichts aufrunden. [Der Befehl zum Aufrunden: ceil()]
Dir ist schon klar, das Leute mit einer Email-Adresse aus Österreich, der Schweiz und 1000 anderen Ländern nach deinem Skript eine ungültige Email-Adresse haben.
Mit einer Email-Adresse von einer aero- oder museum-Domain hat man hingegen keine Probleme.
Ich kenne keinen mit einer museum-Domain-Email-Adresse, dafür genug mit einer aus Österreich etc. Interessant, dass es bei dir andersherum zu sein scheint. Hätte nicht gedacht, dass es das gibt.
Es soll auch Email-Adressen von Subdomains geben. Die sind (fast) egal von welcher Domain bei deiner Überprüfung ungültig. fritz.mueller(at)fritz.mueller.com.au hat keine Chance deine Überprüfung zu überstehen, obwohl es eine gültige Adresse ist.
Die Bedingung strlen($mail_check_dot[0]) >=3 muss für de-Domains erfüllt sein. com-Domains können auch eine Länge von nur 2 Zeichen haben.
Das reicht jetzt, weiter prüfe ich das jetzt nicht.
In dem Skript musst du noch einiges überarbeiten. Aber aller Anfang ist schwer.
Grüße
MagMo
ich würde folgendes ändern:
Ersetze den Befehl microtime() durch den Befehl time(). Dann brauchst du auch nichts aufrunden. [Der Befehl zum Aufrunden: ceil()]
Dir ist schon klar, das Leute mit einer Email-Adresse aus Österreich, der Schweiz und 1000 anderen Ländern nach deinem Skript eine ungültige Email-Adresse haben.


Ich kenne keinen mit einer museum-Domain-Email-Adresse, dafür genug mit einer aus Österreich etc. Interessant, dass es bei dir andersherum zu sein scheint. Hätte nicht gedacht, dass es das gibt.

Es soll auch Email-Adressen von Subdomains geben. Die sind (fast) egal von welcher Domain bei deiner Überprüfung ungültig. fritz.mueller(at)fritz.mueller.com.au hat keine Chance deine Überprüfung zu überstehen, obwohl es eine gültige Adresse ist.
Die Bedingung strlen($mail_check_dot[0]) >=3 muss für de-Domains erfüllt sein. com-Domains können auch eine Länge von nur 2 Zeichen haben.
Das reicht jetzt, weiter prüfe ich das jetzt nicht.
In dem Skript musst du noch einiges überarbeiten. Aber aller Anfang ist schwer.

Grüße
MagMo
- witzigerkiller
- Gesperrt
- Beiträge: 878
- Registriert: 05.02.2005 13:27
- Wohnort: Sonthofen