Seite 1 von 1

Anmeldebestätigung per Email in PHP

Verfasst: 14.03.2004 09:59
von Jokaero
hallo,
ich möchte ein simples PHP Anmeldeskript schreiben, dass dem neuen User eine Email schreibt, in der er durch einen simplen klick seine Anmeldung bestätigen kann. Ich finde im Netz leider kein geeignetes Tutorial dazu. Kann mir da wer weiterhelfen? Als Datenbank hält MySQL her.
Danke!

Verfasst: 14.03.2004 10:03
von Nico Haase
a) Anmeldeformular mit allen wichtigen Daten
b) Bestätigungsseite, dabei wird an seine-em@il ne Nachricht geschickt. Die eingegebenen Daten aus a werden in die Datenbank gesteckt, dazu ein md5-Hash aus $irgendwas resp. ein Zufallswert. Dieser wird als Link zusammen mit der ID des eingefügten Nutzers per Mail geschickt, da wäre dann also sowas wie script.php?id=123&confirm=$hash, da muss der Benutzer draufklicken
c) beim Aufruf wird ein Update-Query durchgeführt, der den Wert von confirm auf $irgendwas setzt, wobei dieses $irgendwas ein fester Wert ist, der dir sagt, dass der Benutzer freigeschaltet ist

Verfasst: 14.03.2004 10:33
von Jokaero
Vielen Dank. Bin leider noch zu wenig mit PHP vertraut, dass ich mir das in dem Umfang zutraue. :oops: Gibts irgendwo Beispielskripte dazu? Vorallem der Hashing und der Emailteil wär interessant.

Verfasst: 14.03.2004 13:38
von Pyramide
EMail: [php:mail]
MD5: [php:md5]
Zufallswert: [php:mt_rand]

Verfasst: 14.03.2004 20:06
von Jokaero
danke euch beiden. bin schon so weit, dass der anmelder ne Mail erhält, während seine Daten in die Datenbank geschrieben werden. Ich hab aber noch ne Verständnisfrage bezüglich des hash.
beim Aufruf wird ein Update-Query durchgeführt, der den Wert von confirm auf $irgendwas setzt, wobei dieses $irgendwas ein fester Wert ist, der dir sagt, dass der Benutzer freigeschaltet ist
Wird neben den Daten der Zufallszahl oder der bereits gehashte Zufallswert in die DB geschrieben?
Ich habs so verstanden, dass der Zufallswert in die DB geschrieben wird. Wird der Link aufgerufen, so wird der Zufallswert in der DB ebenfalls gehasht und mit dem Wert aus dem Link verglichen. Stimmen die beiden überrein, so wird der User aktiviert. War das die Idee, oder lieg ich voll daneben?

Verfasst: 14.03.2004 20:50
von Nico Haase
stimmt so.

Verfasst: 14.03.2004 22:16
von Jokaero
Vielen Dank! Klappt alles, bis auf den Fall, wenn eine ID nen Leerschlag enthält. Den schluckt die die URL ja 'leider' nicht. Hab mir gedacht, dass ich die ID auch gleich codieren könnte. In diesem Fall müsste es aber eine Codierung sein, die ich wieder entschlüsseln kann. Ist euch da ne vordefinierte PHP- Funktion bekannt. Oder gibts nen besseren Weg, das Problem anzupacken?

Verfasst: 14.03.2004 22:25
von Pyramide
Wenn du mit md5() einen Hash erstellst, besteht dieser nur aus hexadezimalen Ziffern (also 0-9,a-f). Für andere Werte gibt es sonst noch [php:base64_encode] / [php:base64_decode].

Verfasst: 14.03.2004 23:23
von Jokaero
genau was ich gesucht habe!
Das Anmeldeskript funktioniert nun bestens! Danke für die Hilfe! :grin: