debian
27.10.2009, 23:38:50
Witam, napisałem prosty skrypt newslettera, który to dodaje z formularza adres email do bazy danych.
Chciałbym i nie wiem jak to rozwiązać, zrobić weryfikację emaili. Po dodaniu na adres email leci weryfikator z linkiem w postaci
adres.pl/newsletter.php?verify=adres@domena.pl&code=tutaj_jakis_hash
i jak ktoś kliknie to w bazie zmieni się pole weryfikacja z 0 na 1.
Z bazą sobie poradzę, ale jak wykonać taki weryfikator.
Pozdrawiam
netmare
28.10.2009, 21:34:47
a czego konkretnie nie wiesz?
vokiel
28.10.2009, 23:10:56
W bazie obok pola email robisz pole hash, potem zwykły select który pobierze rekord where email jest mailem z linku, a hash (jak się łatwo można domyśleć) jest hashem. Jeśli zwróci rekord jest ok, zmieniasz weryfikację na 1
vokiel ma rację, możesz też ew. rozwiązać to w bardziej banalny sposób i zrobić np tak że twój kod potwierdzający to md5 z maila + ziarno. Np.
md5("mail@exaple.com" + "wlazł kotek na płotek");
potem pobierasz sobie nazwę tego maila, dodajesz ziarno (wlazł kotek...) i sprawdzasz czy otrzymany wynik jest równy hashowi.
debian
29.10.2009, 01:32:35
No ale mam wysyłać adres do kliknięcia z tym hashem w bazy? i jak ktoś kliknie i podany hash == hash z mejla + ziarno to zupdatować pole weryfikacji? Czy jak
thek
29.10.2009, 01:50:14
To ja napiszę skrótowo jak zazwyczaj rozwiązuję... Daję adres email lub id czy ogólnie coś pozwalające mi na identyfikację (choćby login) i dla niego generuję hash. Mam osobną tabelę, nazwijmy ją poczekalnia, i do niej władowuję wszelkie takie "zapytania". W zależności od działań, może to być powiązane z nowym hasłem, aktywacją czegoś lub co nam się żyw dusza nie podoba. Gdy przyjdzie do nas linkiem odpowiedni hash, sprawdzamy czego i kogo tyczy oraz odpowiednio postępujemy (określone procedury, metody, zależne od określonych pól w rekordzie), a jednocześnie usuwamy z poczekalni wszystkie hashe tyczące tego określonego zadania (user mógł kilka razy tę procedurę wykonać co stworzy wielokrotne hashe) i usera.
vokiel
29.10.2009, 08:26:21
Cytat(debian @ 29.10.2009, 01:32:35 )

No ale mam wysyłać adres do kliknięcia z tym hashem w bazy? i jak ktoś kliknie i podany hash == hash z mejla + ziarno to zupdatować pole weryfikacji? Czy jak
Tak, wysyłasz do użytkownika link do skryptu sprawdzającego:
http://TwojSerwer.pl/validate.php?email=te...sdfad98adf9a8dfW skrypcie odbierasz po prostu zmienne $_GET['email'] oraz $_GET['hash'], konstruujesz zapytanie, i patrzysz czy zwróciło wynik czy nie
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę
kliknij tutaj.