willst du die emailadresse auf gültigkeit prüfen ? oder wie soll ich das verstehen ?
Hallo zusammen,
habe hier im Forum irgendwo aufgeschnappt, dass man die e-mail-Adresse in Formularen auf @ und . durchsuchen kann um Fehler zu minimieren.
Habe aber leider nicht gefunden wie man das nun macht. Kann mir vielleicht jemand sagen wie man sowas einrichtet.
Gruß,
Matthias
willst du die emailadresse auf gültigkeit prüfen ? oder wie soll ich das verstehen ?
Ja so in etwa.
Habe mich schon durchs Forum gewühlt und herausgefunden, dass es offensichtlich nicht ganz so einfach ist. Dabei bin ich auf dieses überprüfen von @ und . gestoßen und fand dieses schon mal recht nützlich.
Ich habe aktuell nämlich ein Anfrage bekommen, die als Mail-Adresse "Vorname.Nachname" eingetragen hat.
Mit der Überprüfung nach @ und . wäre das warscheinlich nicht passiert.
Gruß,
Matthias
bin grad am schauen, was ich so habe, zum anbieten
also dein form-tag muß folgender maßen aussehen
mit return check() rufst du die überprüfung deines formulares auf.PHP-Code:<form ACTION="sendmail.pl" METHOD="GET" name="form1" onSubmit="return check()">
und das folgende script kopierst du unmittelbar nach dem body-tag hinein, bevor deine eigentliche html-tags kommen.
wichtig ist, das du dem formularfeld für die eingabe der emailadresse dem namen: email gibst und das dein formular mit dem namen form1 bezeichnet ist.PHP-Code:<script>
function check()
{
var email=document.form1.email.value;
var cemail="";
if (email!="")
{
if (document.form1.email.value.indexOf('@',0)==-1 || document.form1.email.value.indexOf('.',0)==-1)
cemail="Die eingegebene E-Mail-Adresse ist nicht korrekt!\n";
}
else
var cemail="Sie haben keine E-Mail-Adresse angegeben!\n";
if (cemail!="")
{
alert(cemail)
return false;
}
else
return true;
}
</script>
weiß jetzt gar nicht, ob das mal auf meinem mist gewachsen ist, aber es funktioniert. ist halt nur Javascript
Geändert von MatthiasG (31.03.2005 um 10:22 Uhr)
Und:Code:function check_email($email) // Checkt, ob Emails gültig sind { $nonascii = "\x80-\xff"; # Non-ASCII-Chars are not allowed $nqtext = "[^\\\\$nonascii\015\012\"]"; $qchar = "\\\\[^$nonascii]"; $protocol = '(?:mailto:)'; $normuser = '[a-zA-Z0-9][a-zA-Z0-9_.-]*'; $quotedstring = "\"(?:$nqtext|$qchar)+\""; $user_part = "(?:$normuser|$quotedstring)"; $dom_mainpart = '[a-zA-Z0-9][a-zA-Z0-9._-]*\\.'; $dom_subpart = '(?:[a-zA-Z0-9][a-zA-Z0-9._-]*\\.)*'; $dom_tldpart = '[a-zA-Z]{2,5}'; $domain_part = "$dom_subpart$dom_mainpart$dom_tldpart"; $regex = "$protocol?$user_part\@$domain_part"; // RegEx end return preg_match("/^$regex$/",$email); }
Code:if(check_email($_POST['email'])) { echo "Ist korrekt"; } else { echo "Ist falsch!"; }
“My software never has bugs. It just develops random features ...”
» DevShack - die Website des freien Webentwicklers Boris
Vielen Dank, das ging ja flott.
Werde es baldmöglichst ausprobieren.
@Boris:
Sieht etwas Wirr für mich aus. Steckt da noch mehr Funktion dahinter? Bin halt ein doofer Laie!?![]()
Gruß,
Matthias
Es checkt hat Stück für Stück und recht genau die Syntax der Email ab. Wenn man nur überprüft, ob ein @ und . vorkommt, kann man ja dennoch was falsches Eintragen (@.@)![]()
“My software never has bugs. It just develops random features ...”
» DevShack - die Website des freien Webentwicklers Boris
Soweit habe ich das schon mal verstanden.
Wo muss ich das Ganze dann einbauen?
Und Funktioniert es unabhänging von dem Script für das Formular oder gibt es da vielleicht irgendwelche Probleme?
Gruß,
Matthias
Hier noch was, womit auch gleich gecheckt wird, ob die Domain existiert bzw. ob der Host aufgelost werden kann.
Benötigt allerdings PHP, was am code ersichtlich sein sollte
und der Funktionsaufruf:PHP-Code:function checkmail($address) {
$sen_name = substr($address,0,strrpos($address,"@"));
$sen_domain = substr($address,strrpos($address,"@")+1);
if(strlen($sen_name)>=1 && preg_match("/^[_a-z0-9-.]+([_a-z0-9-.])$/i",$sen_name))
if(gethostbyname($sen_domain) != $sen_domain) return true;
else return false;
}
PHP-Code:if(checkmail($_SESSION['email'])){
//Sendeaufruf
}
else{
//Fehlermeldung
}
Wobei dies auch keine Garantie dafür ist, dass die Email-Adresse wirklich existiert![]()
“My software never has bugs. It just develops random features ...”
» DevShack - die Website des freien Webentwicklers Boris
Hat ja keiner behauptet
Sollte ja nur noch eine Version sein...
Nee, war nur eine generelle Aussage. Man kann eine Email zwar äußerlich überprüfen, man kann diverse Checks durchführen (Domaincheck, oder checkdnsrr() usw.) ... aber sicher kann man nie sein![]()
“My software never has bugs. It just develops random features ...”
» DevShack - die Website des freien Webentwicklers Boris
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)