Brugere og validering af mailadresser i PHP

Tags:    php

Hej.

Jeg har et udmærket script til min reg-form der frasorterer de fleste useriøse henvendelser.

Desværre kan man skrive hvad-som-helst foran "@" så længe det er fra a-å og/eller 0-9.

Det vil sige, at selv om f.eks. get2net.dk er et godkendt domæne, så kan man bare skrive noget ala: crap77mail77user@get2net.dk og så godkendes det hele.

Spørgsmål: Kan man verificere det der står foran "@", så man er sikker på, at mailkontoen er ægte ??

Alternativet er jo, at man laver den som mange bruger: "Du har nu modtaget en mail, og du bedes klikke på linket i mailen for at afslutte registreringen".

- jeg ved bare ikke hvordan jeg koder alternativet uden at bruge database-verificering. Databaser er besværlige synes jeg ;o)

Er der nogle forslaw ??




7 svar postet i denne tråd vises herunder
2 indlæg har modtaget i alt 4 karma
Sorter efter stemmer Sorter efter dato

Mig bekendt er der ingen sikker måde at bekræfte om fornavnet (før @) på en mail adresse er brugt (som der er for efternavnet) - det ville være et glimrende værktøj for spammere.

Derudover skal ham/hende der opretter profilen (eller hvad det nu måtte være) gerne have adgang til den mailkonto der opgives - det sikre man bedst ved at bede om en bekræftigelse.

Det er i hvert fald min holdning...



Indlæg senest redigeret d. 20.06.2008 13:34 af Bruger #4683
Du kan jo bare lave aktiveringskoden som en hashværdi af klokken.

[code code="php"]
md5(now());
sha1(now());
[/code]



Jeg synes at du skal sendes en validerings mail til dem der opretter sig, så er du bedret sikret.



Tak for jeres svar.

Så mangler jeg bare en kodestump der måske v.h.a. en cookie kan lave en random kode der linkes til mailen som brugeren kan klikke på - af sikkerhedsmæssige årsager netop for at undgå spammere.

Den dukker nok op hvis jeg leder lidt ;o)




Jeg fandt denne her:

<?php
$token = sha1(uniqid(mt_rand()));
?>

Nu skal den bare linkes til mailen f.eks. med:

echo "Klik på dette link for at godkende din mailadresse: ";
echo "<a href=\"$site.'/'.'done.php'.'?'.$token\">$token</a>";

og i "done.php" er det vel nok at skrive:

if ($token){echo "Din mailadresse er nu bekræftet";}

- eller måske med en get() funktion ??

OBS: Korrigér mig lige hvis kodens syntax ikke holder ;o)

Du kan jo bare lave aktiveringskoden som en hashværdi af klokken.

[code code="php"]
md5(now());
sha1(now());
[/code]





Indlæg senest redigeret d. 22.06.2008 16:30 af Bruger #13907
Trist jeg ikke får respons på det seneste ??




Du skal have et felt i din database der hedder aktivering og den indeholder den hashværdi som du også sender til mailen.

I aktiveringsfilen tjekker du så om den hashværdi der sendt med passer med det i databasen, hvis det gør så aktiveres brugeren.



t