Explode um E-Mailadresse zu testen[UPDATE]

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
Benutzeravatar
witzigerkiller
Gesperrt
Beiträge: 878
Registriert: 05.02.2005 13:27
Wohnort: Sonthofen

Explode um E-Mailadresse zu testen[UPDATE]

Beitrag von witzigerkiller »

Hallo Liebe Mitglieder,

ich weiß, E-Mails überprüfen, macht man mit regulären Ausdrücken, aber da ich diese nicht kann, hatte ich zuerst die e-mail mit stristr(); geprüft, auf @ und .

Aber man konnte dadurch auch nur @ und . eingeben, und schon wurde man registriert.

So, vorauf ich eigentlich hinaus will, ist das, dass es mir damit zu gefährlich war, vor spamern und allem, deshalb habe ich mich mal entschlossen, eine größere Fehlerbehebung zu machen, und habe mir dieses Script zusammengebastelt:

Code: Alles auswählen

<?PHP
// E-Mail 
$Mail = "witzigerkiller@aol.com";

if (check_mail($Mail) !== true)
{
  echo "Falsche E-Mailadresse";
}
else
{
  echo "Richtige E-Mailadresse";
}

function check_mail($mail_addy)
{
  // Mail Zerlegen
  $mail_zerlegt_at = explode("@",$mail_addy);
  $mail_zerlegt_dot = explode(".",$mail_zerlegt_at[1]);

  // Abfrage
  if (strlen($mail_zerlegt_at[0]) >= 4 && strlen($mail_zerlegt_dot[0]) >= 3 
      && strlen($mail_zerlegt_dot[1]) >= 2)
  {
    return true;
  }
  else
  {
    return false;
  }
}
?>
Nun eine kleine Erklärung:

Es wird an die Funktion die E-Mailadresse übergeben, danach wird diese durch explode geprüft, ob vor dem @ die zeichenlänge mind. 4 zeichen hat, nach dem @ mind. 3 zeichen kommen, und nach dem . müssen auch mind. 3 zeichen kommen.
Zusätlich wird durch das explode auch noch nach dem @ und . gesucht, ob es auch vorhanden ist...

Meine Frage, ist, ob ihr das Script, für den gebrauch im Netz Empfehlen könntet, ob es sicherer ist, oder ob ich noch was verbessern könnte..

Ich bedanke mich herzlich im voraus...
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.
PhilippK
Vorstand
Vorstand
Beiträge: 14662
Registriert: 13.08.2002 14:10
Wohnort: Stuttgart
Kontaktdaten:

Beitrag von PhilippK »

Mit Google lassen sich gut und bequem hervorragende Vorlagen finden, die das über Regular Expressions lösen. Wo ist also das Problem?

Gruß, Philipp
Kein Support per PN!
Der Sozialstaat ist [...] eine zivilisatorische Errungenschaft, auf die wir stolz sein können. Aber der Sozialstaat heutiger Prägung hat sich übernommen. Das ist bitter, aber wahr. (Horst Köhler)
Meine Mods
Benutzeravatar
chriss713
Mitglied
Beiträge: 229
Registriert: 06.06.2005 14:06

Beitrag von chriss713 »

Du hast einiges an Denkfehlern drin...deshalb empfehle ich Dir auch die google-Recherche!
Worauf Du aber achten solltest: Viele alte Regex-Ausdrücke checken nur auf Topleveldomains mit 2 oder 3 Buchstaben (.de, .com, ...) mittlerweile gibt es jedoch auch TLDs mit 4 Buchstaben (z.B. .info)

Gruß
Chriss
Benutzeravatar
larsneo
Mitglied
Beiträge: 2622
Registriert: 07.03.2002 15:23
Wohnort: schwäbisch gmünd
Kontaktdaten:

Beitrag von larsneo »

...und natürlich auch die idna domains nicht vergessen - nahezu alle 'klassischen' regexps (inklusive die beim phpbb) validieren umlautdomains nicht korrrekt.
gruesse aus dem wilden sueden
larsneo
..::[krapohl.net]::..
Benutzeravatar
witzigerkiller
Gesperrt
Beiträge: 878
Registriert: 05.02.2005 13:27
Wohnort: Sonthofen

Beitrag von witzigerkiller »

Ersteinmal DAnke für euere Antoworten

problem habe ich keins, wollte nur mal hören, ob das script so für nen einsatz im netz geeignet wäre...

Vllt könntet ihrs mal mit anderen e-mail addys testen, ob es bei anderen eigentlichen korrekten mails, einen fehler gibt.

Ich weiß google...Aber ich habe schon gesucht, und gefunden, und haufen seiten gelesen, doch nichts verstanden, deswegen halt so...

Soweit ich weiß, kann man e-mails irgendwie so prüfen:

Code: Alles auswählen

{A-Za-z0-9}{A-Za-z0-9}{A-Za-z0-9}{A-Za-z0-9}+@{A-Za-z0-9}{A-Za-z0-9}{A-Za-z0-9}{A-Za-z0-9}(/./){A-Za-z0-9}{A-Za-z0-9}{A-Za-z0-9}{A-Za-z0-9}
das soll dann irgendwie prüfen oderso, aber ich blick das net, mit dem klammergewirr, aber werde es nochmal nachlesen, vllt mehr damit üben und das dann benutzen...
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.
Benutzeravatar
chriss713
Mitglied
Beiträge: 229
Registriert: 06.06.2005 14:06

Beitrag von chriss713 »

Was ist so schwierig daran 'regex email' bei http://www.google.de einzugeben?!!!!?? :evil:
Benutzeravatar
witzigerkiller
Gesperrt
Beiträge: 878
Registriert: 05.02.2005 13:27
Wohnort: Sonthofen

Beitrag von witzigerkiller »

ich glaube ihr versteht das nicht. ich will selber was machen, und das lernen, nichts fertiges.
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.
Benutzeravatar
chriss713
Mitglied
Beiträge: 229
Registriert: 06.06.2005 14:06

Beitrag von chriss713 »

Ok, dann lege ich Dir den RegEx-Coach (http://www.weitz.de/regex-coach/) ans Herz.

Tipp: Wenn Du ein Zeichen mehrmals (oder gar nicht, oder genau einmal, ...) erlauben möchtest, schau Dir mal "Quantoren" an (http://de.wikipedia.org/wiki/Regex#Quan ... olungen.29)
Benutzeravatar
witzigerkiller
Gesperrt
Beiträge: 878
Registriert: 05.02.2005 13:27
Wohnort: Sonthofen

Beitrag von witzigerkiller »

ok, danke euch, aber ich denke ich bleibe lieber bei dem explode, es funzt bei mir zumindestens einbandfrei mit jeder mailadresse, oder könnt ihr das wiederlegen?

EDIT: Was für e-mailendungen gibts denn so? kenne nur de und com...
Das wäre sehr hilfreich zu wissen, dann kann ich mein script bisschen besser ausbauen
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.
Benutzeravatar
chriss713
Mitglied
Beiträge: 229
Registriert: 06.06.2005 14:06

Beitrag von chriss713 »

witzigerkiller hat geschrieben:Es wird an die Funktion die E-Mailadresse übergeben, danach wird diese durch explode geprüft, ob vor dem @ die zeichenlänge mind. 4 zeichen hat, nach dem @ mind. 3 zeichen kommen, und nach dem . müssen auch mind. 3 zeichen kommen.
- Ein Mail-Alias kann auch weniger als 4 Zeichen haben! Da hakelts bei Dir
- Eine Domain muss mind. 3 Zeichen haben, das passt also.
- Eine Liste mit TLDs findest Du hier: http://de.wikipedia.org/wiki/Top_Level_Domain
Antworten

Zurück zu „Coding & Technik“