Supportnet Computer
Planet of Tech

Supportnet / Forum / Skripte(PHP,ASP,Perl...)

Frage über E-Mail-Check?





Frage

Hallo. Weisst jemand, wie man einen E-Mail-Check bekommen kann. Wenn Benutzer falsch seine E-Mail-Adresse eintragen z. B. statt @ eine q u.s.w. Dann müste normaleweise erst wider seine E-Mail eintragen. Wenn jemand Bescheid weisst, warte ich auf Antwort. Danke. Cu.

Antwort 1 von abc123

Hier zwei Beispiele.

*** mit JavaScript ***

<html>
<body>
<script language="JavaScript">
emails = new Array(
"ab", // falsch
"a.b", // falsch
"a@b", // falsch
"a@b.", // falsch
"a@.bc", // falsch
"a@b.c", // falsch
"a@b.cd", // OK
"a@@b.cd", // falsch
"a@-bc", // falsch
"a@-.bc", // falsch
"a@b-.cd", // falsch
"a@b-c.d", // falsch (mind. 2 Buchstaben am Ende)
"a@b-c.de", // OK
"a@b-c.def", // OK
"a@b.c.de", // OK
"@a.bc", // falsch
"-@a.bc", // falsch
".@a.bc", // falsch
"-a@b.cd", // falsch
".a@b.cd", // falsch
"a-@b.cd", // falsch
"a.@b.cd", // falsch
"a..b@c.de", // falsch
"a--b@c.de", // falsch
"a.b@c.de", // OK
"a-b@c.de", // OK
"a.b@c-d.ef", // OK
"a-b@c.d.ef" // OK
);

pattern = /^[wd]+([.-]?[wd]+)*@w+([.-]?[wd]+)*.w{2}w*$/i;

document.write("<table border=1 cellspacing=5> ");
for(i=0; i < emails.length; i++) {
document.write("<tr> ");
if(pattern.test(emails))
document.write(" <td>"+emails+"</td> <td>OK</td> ");
else
document.write(" <td>"+emails+"</td> <td>ungültig</td> ");
document.write("</tr> ");
}
document.write("</table> ");
</script>
</body>
</html>

*** mit PHP genauso ***

<?php

$emails = array(
"ab", // falsch
"a.b", // falsch
"a@b", // falsch
"a@b.", // falsch
"a@.bc", // falsch
"a@b.c", // falsch
"a@b.cd", // OK
"a@@b.cd", // falsch
"a@-bc", // falsch
"a@-.bc", // falsch
"a@b-.cd", // falsch
"a@b-c.d", // falsch (mind. 2 Buchstaben am Ende)
"a@b-c.de", // OK
"a@b-c.def", // OK
"a@b.c.de", // OK
"@a.bc", // falsch
"-@a.bc", // falsch
".@a.bc", // falsch
"-a@b.cd", // falsch
".a@b.cd", // falsch
"a-@b.cd", // falsch
"a.@b.cd", // falsch
"a..b@c.de", // falsch
"a--b@c.de", // falsch
"a.b@c.de", // OK
"a-b@c.de", // OK
"a.b@c-d.ef", // OK
"a-b@c.d.ef" // OK
);

$pattern = "/^[wd]+([.-]?[wd]+)*@w+([.-]?[wd]+)*.w{2}w*$/i";

echo "<table border=1 cellspacing=5> ";
for($i=0; $i < count($emails); $i++) {
echo "<tr> ";
if(preg_match($pattern, $emails[$i]))
echo " <td>".$emails[$i]."</td> <td>OK</td> ";
else
echo " <td>".$emails[$i]."</td> <td>ungültig</td> ";
echo "</tr> ";
}
echo "</table> ";

?>

Gruß
Michael


Antwort 2 von PROGSTYLE

Mit PHP ganz einfach...

du liest das gewünschte Feld (hier Email) mit PHP aus...

und guckst ob mindestens ein "@" und ein "." drin ist... das geht mit der funktion :

$anzahl_at = substr_count($email,"@");
$anzahl_point = substr_count($email,".");

wenn $anzahl_at oder $anzahl_point gleich 0 ist, fragst du die emailadresse nochmal ab...

dann kannst du noch zusätzlich abfragen wie lang der string ist... eine gültige emailadresse muss mind. 8 zeichen enthalten.. mind ein buchstabe vor dem @, dann mind 3 buchstaben für die domain, ein . und mindestens 2 stellen danach..

dies kannst du mit dem befehl strlen einsehen..

$laenge = strlen($email);

also wenn $laenge kleiner ist als 8 dann ist dies auch keine gültige

MfG Tobias...

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: