[PHP] eMail-Addy validieren

KD-NewMedia

Gesperrt
23 September 2006
871
47
Hey also ich hab mir jetzt nen login gemacht mit anmeldung passwort vergessen und abmelden hier der link https://www.lose4players.omegaspace.de/test/
Naja wen man sich anmeldet kann man als email addy einfach nur test angeben!

Aber genau das möchte ich nicht! Wie kann ich das jetzt so machen das eine richtiege email addy eingegeben werden muss?

Danke schonmal für die hilfe!


Gruß
Keven!
 
Was ist denn eine "richtiege email addy" ?

Am einfachsten benutzt du einen RegExp (frag gar nicht danach, die Boardsuche und auch Google werfen zu Haufen Treffer aus), dann kannst du schon mal sicher gehen, dass die Syntax korrekt is.
Hindert mich aber ned, dass ich dir dann notexists@example.com eintrag. Diese eMail-Adresse is sicher falsch und würde durchkommen.

Verfeinern kannst du es, indem du prüfst, ob der Host existiert. Hierzu kannst du checkdnsrr() benutzen.
 
verstehe nicht ganz wie du das meinst!
es soll ja nur überprüft werden ob es ne gültiege email addy ist wen nicht darf man sich net anmelden!
 
gar nicht.

klar kannst checken ob @ vorhanden ist, ob syntax stimmt o.ä.

fakt ist, wer was falsches eingeben will, gibt da eh nix richtiges an.
ich nehm bei so gelegenheiten immer blub@bla.de *fg

wenn die email addy checken willst, schick nen aktivierungslink und lass die leute sich freischalten.
 
verstehe nicht ganz wie du das meinst!
Was verstehst du denn nicht ?
es soll ja nur überprüft werden ob es ne gültiege email addy ist wen nicht darf man sich net anmelden!
Was ist eine gültige eMail-Adresse ? - war meine Frage.
Eine, die syntaktisch korrekt is ? Eine, die syntaktisch korrekt ist und der Host auch wirklich existiert ? Eine, die syntaktisch korrekt ist, der Host wirklich existiert und auch die Addy selbst definiert ist ?

Letzteres kannst du nicht prüfen. Du kannst nur hinmailen und gucken, ob du ne Nachricht zurückkriegst, dass die Adresse nicht existiert. Für die anderen beiden Antworten hab ich dir die Lösungen oben schon beschrieben.
 
hmm naja die idee mit der bestätiegungsmail ist schon gut!
Könnte mir einer sagen wie ich es mache?
 
Letzteres kannst du nicht prüfen. Du kannst nur hinmailen und gucken, ob du ne Nachricht zurückkriegst, dass die Adresse nicht existiert.

Wird man auch nicht 100% Prüfen können, da es leider immer mehr Wegwerf-Adressen gibt, wo man 7 tage oder so eine Mail weitergeleitet bekommt...
 
Wird man auch nicht 100% Prüfen können, da es leider immer mehr Wegwerf-Adressen gibt, wo man 7 tage oder so eine Mail weitergeleitet bekommt...
Bei dem Spam auch verständlich :yes:
Könnte mir einer sagen wie ich es mache?
Schlüssel generieren und zusammen mit dem User speichern.
Mail an die Addy mit dem Schlüssel. Eigentlich is der Schlüssel in Form eines Direktlinks schon in der Mail mit drin. Wenn der User den Schlüssel eingeben kann, freischalten.
Evtl. nach Ablauf einer Deadline ohne Freischaltung den User löschen oder automatisch sperren.
 
Hmm,
mal ganz einfach gedacht.

Erstell doch eine Tabelle, in der bei der Anmeldung der Wert 0 gesetzt wird. Dann jagst Du eine Mail mit einem Direktlink raus, mit einer Variable wie freischaltung=1 z.B.
Dann holste dir per GET die 1 aus der URL und schreibst diese in die DB.
Beim Login prüfst Du dann einfach, welcher Wert in der DB steht und gibst ggf. eine Fehlermelung aus.
 
Ich hab mir für so einen Zweck angewöhnt immer zu gucken ob der Host existiert.

$split = email mit explode bei '@' trennen.

also z.B. user@example.org
$split[0] = 'user';
$split[1] = 'example.org';

Dieser Code prüft ob für die Domain ein MX oder A Eintrag im DNS vorhanden ist, weil ohne ist es eine Falscheingabe.

PHP:
if (!checkdnsrr($split[1],'MX') AND !checkdnsrr($split[1],'A')) {
  // FEHLER
}

Danach wie oben genannt einen Bestätigungslink senden.

Wichtig hierbei wäre noch, das beim Klicken auf den Link der User auch sein bei der Registrierung eingegebenes Passwort eingibt. Nur und wirklich NUR DANN sollte der Account freigeschaltet werden.

Denn: Wenn die E-Mail an jemand geht dessen E-Mail Addy es aber garnicht ist und trotsdem den Link klickt ist Arschkarte.
 
Einfacher ist es kaum möglich.

Selbst ist der Mann, les dich einfach mal ordentlich ein in die Thematik. Google is your Friend! ;)
 

kein wunder was hier als antworten gekriegt hast *fg


1. erstelle bei der anmeldung nen zufälligen x zeichen code
2. den mit md5 verschlüsseln
3. dann speicherst den user wie gehabt, mit folgenden 2 spalten in der tabelle
aktiv = 0 (1 wär er ist freigeschalten), und freecode = das md5-zufallsteil.

den freischaltcode schickst ihm per mail.
(entweder hängst das als variable (bzw. username, pw etc.) an die url, oder sagst ihm er solls in nen formular eingeben)

dann, je nachdem ob formular oder via url, schaltest den frei.

bsp. formular.

soll benutzer eingeben und den code. und du setzt "aktiv" auf 1 (= freigeschalten) wo der code + benutzername in einer zeile vorkommt. falls nicht = fehler = ignoriers

wenns via url anhängst. sollte der link auf eine extra seite gehen, die checkt dann die angaben in der url ($_GET) und schaltet halt den frei. wo widerum alles in eine url passt.

und die leute, die das nich auf die reihe gekriegt haben, sich innerhalb einer woche, oder im schlimmsten fall einem monat freizuschalten kannst getrost löschen

@shenziro.. der host hilft dir herzlich wenig. hat aber thehacker oben schon erwähnt

und jaaaa, ich weiss geht alles optimaler und "sicherer" *fg
 
Hmm,
mal ganz einfach gedacht.

Erstell doch eine Tabelle, in der bei der Anmeldung der Wert 0 gesetzt wird. Dann jagst Du eine Mail mit einem Direktlink raus, mit einer Variable wie freischaltung=1 z.B.
Dann holste dir per GET die 1 aus der URL und schreibst diese in die DB.
Beim Login prüfst Du dann einfach, welcher Wert in der DB steht und gibst ggf. eine Fehlermelung aus.

Naja, die 1 müsste schon durch ne sich änderne Zahl ersetzt werden, sonst bringts ja nix.

zB. n SHA1-Hash aus verschiedenen Werten, Algo dazu muss natürlich dann geheim bleiben ;)
 

Was genau checkst du nicht.

EDIT:
@shenziro.. der host hilft dir herzlich wenig. hat aber thehacker oben schon erwähnt

Ich hatte bis jetzt viele Anmeldeversuche auf vers. Seiten mit awdih@wadhweaf.de oder sowas sinnlos zusammengeschustertes.
Von daher hilft der im gewissen Maß schon. Und die 3 Zeilen Quellcode mehr machen es doch auch nicht oder?

Wobei ich bei deiner Erklärung zum Bestätigungslink vermisse, das der User sein Passwort eingeben muss. Sonst kann ja jeder den Link klicken... villeicht auch aus versehen und der Account ist frei.

Btw. machts PayPal auch so =)

mfg
 
Ich hatte bis jetzt viele Anmeldeversuche auf vers. Seiten mit awdih@wadhweaf.de oder sowas sinnlos zusammengeschustertes.
Von daher hilft der im gewissen Maß schon. Und die 3 Zeilen Quellcode mehr machen es doch auch nicht oder?
Jain..., wenn ich mitm bla@blub.de (s.o.) nicht weiterkomme, nehm ich halt n bla@gmx.de oder aol.com, oder yahoo... oder... xxxxx *fg

von daher... komplett schnurz
Wobei ich bei deiner Erklärung zum Bestätigungslink vermisse, das der User sein Passwort eingeben muss. Sonst kann ja jeder den Link klicken... villeicht auch aus versehen und der Account ist frei.
passwort? wozu? *ggggg steht doch dann eh in der mail *fg

(sollte auch, wenn nich klicken die (sofern die da unbedingt rein wollen) eh auf "passwort vergessen"von daher... totaler blödsinn)

cool is vielleicht sogar noch, nen zufälliges passwort zu generieren, dass dann als mail zu verschicken.

ohne freischalt link.

ohne mail kein pw.

und wenns ne fremde mail ist........., die da kein interesse dran haben sind die dann eh inaktiv.

oder die haben interesse dran. dann halt editierbereich von den stammdaten *g (gibt ja auch verkäufe)

ausserdem geben dann leute, die was von der seite wollen (warum sonst registrieren) wahrscheinlich noch eher die richtige addy an. und man spart sich das 2te feld vom pw @ tippelfehlercheck

die kriegen dann irgend n md5 kram mit der aufforderung das so schnell wie möglich zu ändern.

und "aus versehen" nen link klicken???? lol, wenn das möglich wär, wären alle paidmailer-betreiber reich :D *fg

btw... was interessiert mich paypal 8O ???