Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Weryfikacja emaili w newsletterze
Forum PHP.pl > Forum > PHP
debian
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
a czego konkretnie nie wiesz?
vokiel
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
MWL
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.
  1. 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
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
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
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...sdfad98adf9a8df

W 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.
Invision Power Board © 2001-2025 Invision Power Services, Inc.