Autor | Zpráva | ||
---|---|---|---|
Volt Profil * |
#1 · Zasláno: 19. 8. 2008, 02:06:59
Zdravim. Tak jsem zase po case narazil na dalsi vec kterou jeste neumim. (je jich cim dal vic) :)
Potrebuju udelat klasickou registraci jako je treba na fora. Uzivatel vyplni formular, posle se mu aktivacni email. V nem pak klikne na odkaz a je presmerovan na nejaky aktivacni link. To zmeni pravdepodobne neco v db, jako aktivni na true. Jedine co nevim, je jak generovat ten aktivacni odkaz a jeste aby opravdu uzivatele aktivoval. Email hodlam posilat fci mail(...). Uzivatele ukladam do DB. Pak je z ni i overuju pri loginu. Budu moc vdecny za kazdou pomoc. Na netu jsem nasel tuny clanku jak udelat registraci, ale nikde s aktivacnim emailem. Predem diky, Volt |
||
Volt Profil * |
#2 · Zasláno: 19. 8. 2008, 02:17:53
Jeste bych se pri te prilezitosti chtel zepat, zda se da nejak v php zjistit aktualni datum.
|
||
Nox Profil |
#3 · Zasláno: 19. 8. 2008, 06:41:24
Prostě vygeneruješ kód, který se buď uloží uživateli celý do db, nebo jen nějaký klíč k jeho vytvoření (a/nebo indície k němu budou jeho další parametry), pošle se mail kde bude kód. Pak si vytvoříš stránku, kde se kód zadá (nebo rovnou získá v getu, pokud bude aktivace v mailu pouze na kliknutí), porovná se s klíčem uvedeným v db (nebo se spočítá podle parametrů v db) a pokud bude platný, tak se uživatel (třeba přes nějaký sloupec Stav nebo podobně) označí jako aktivovaný
|
||
Nox Profil |
#4 · Zasláno: 19. 8. 2008, 06:42:06
Volt
překvapivě funkce Date :) |
||
Volt Profil * |
#5 · Zasláno: 19. 8. 2008, 17:28:36
„Prostě vygeneruješ kód, který se buď uloží uživateli celý do db, nebo jen nějaký klíč k jeho vytvoření (a/nebo indície k němu budou jeho další parametry), pošle se mail kde bude kód. Pak si vytvoříš stránku, kde se kód zadá (nebo rovnou získá v getu, pokud bude aktivace v mailu pouze na kliknutí), porovná se s klíčem uvedeným v db (nebo se spočítá podle parametrů v db) a pokud bude platný, tak se uživatel (třeba přes nějaký sloupec Stav nebo podobně) označí jako aktivovaný“
No ja bych potreboval poradit prave konkretne s vygenerovanim kodu, jinak je mi to docela jasny. |
||
Medvídek Profil |
#6 · Zasláno: 19. 8. 2008, 17:43:10
co třeba:
function heslo($delka) { srand((double)microtime()*100000); $znaky = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890"; do{ $retezec .= substr($znaky, rand()%(strlen($znaky)),1); }while(strlen($retezec)< $delka); return($retezec); } $nahodne_heslo=heslo("9"); |
||
Volt Profil * |
#7 · Zasláno: 19. 8. 2008, 23:42:47
„co třeba:“
„function heslo($delka) {... } $nahodne_heslo=heslo("9");“ No me nejde o heslo (pripadne generovani nahodneho plaintextu) , me jde o vygenerovani linku a do toho generovanyho kodu se musi nejak zakryptovat informace jaky ucet se ma aktivovat. (Jestli to chapu dobre) Protoze az uzivatele na ten link klikne, tak getem vemu ten link, vytahnu z nej informace a v DB ho aktivuju. Nicmene zase to nesmi byt nejak pruhledne, aby nestaceli zmenit parametr, treba ...?reg=id1. To by si to kazdy aktivoval i bez mailu jenom tim ze by si zkousel tam davat cisla. |
||
joe Profil |
#8 · Zasláno: 19. 8. 2008, 23:53:13
hash můžeš generovat třeba z id uživatele, nicku, emailové adresu a nějakého svého textu. To pak uložíš k uživateli do db.
Na aktivaci se podíváš do db, jestli tam takový hash je, pokud je, účet aktivuješ. |
||
srigi Profil |
#9 · Zasláno: 20. 8. 2008, 00:37:10 · Upravil/a: srigi
Volt
Co trebars takto >> majme takuto DB schemu: Pri registracii, vytvoris zaznam v tabulke users, v flagom activated=false. Zaroven si vygenerujes token a ulozis ho do tabulky activation_queue. Zaroven ulozis cas vytvorenia tokenu, aby si mohol zaviest nejaky ten timeout. Zaznam v activation_queue zviazes s IDckom v tabulke users. Na zaver posles aktivacny email. Po prichode emailu, ides do tabulky activation_queue, pozries sa ci mas token (ziskany z GET) v tabulke, skontrolujes timeout, ak vsetko sedi, prehodis flag v tabulke users a zmazes zaznam z tabulky activation_queue. Takto nie sanca aby si niekto aktivoval ucet podvrhom. Platne tokeny su ulozene bezpecne v databaze a platny token pozna iba prijmatel mejlu. |
||
Volt Profil * |
#10 · Zasláno: 20. 8. 2008, 01:42:54
„Volt“
„Co trebars takto >> majme takuto DB schemu:“ „...“ Tohle bude asi idealni reseni. Mockrat dekuju ze vsechny napady a navrhy. Dalsi problem ktery jsem diky Vam vyresil. Jeste jednou mockrat dekuju. Volt |
||
Tomasds Profil |
#11 · Zasláno: 20. 8. 2008, 09:00:12 · Upravil/a: Tomasds
srigi
<ot> Z čeho je prosím tě ten obrázek? Občas řeším, v čem tyhle věci malovat a myslím že na to existují lepší nástroje než excel :) </ot> |
||
Medvídek Profil |
#12 · Zasláno: 20. 8. 2008, 09:06:34
„No me nejde o heslo (pripadne generovani nahodneho plaintextu) , me jde o vygenerovani linku a do toho generovanyho kodu se musi nejak zakryptovat informace jaky ucet se ma aktivovat. (Jestli to chapu dobre) Protoze az uzivatele na ten link klikne, tak getem vemu ten link, vytahnu z nej informace a v DB ho aktivuju.
Nicmene zase to nesmi byt nejak pruhledne, aby nestaceli zmenit parametr, treba ...?reg=id1. To by si to kazdy aktivoval i bez mailu jenom tim ze by si zkousel tam davat cisla.“ to je takovej problem si vygenerovat ten 9 mistny kod, a po registraci by byl aktivacni kod odeslan na email: blabla.cz/aktivuj.php?kod=TENTVUJKOD dal by byl dotaz SELECT kod FROM UZIVATELE WHERE kod = TENTVUJKOD pokud by se nasel ten kod, tak by se UPDATLO a parametr aktivovano by si z 0 zmenil na 1. |
||
srigi Profil |
#13 · Zasláno: 20. 8. 2008, 11:01:21
|
||
Tomasds Profil |
#14 · Zasláno: 20. 8. 2008, 11:36:27
srigi
děkuji ti z celého srdce. |
||
Časová prodleva: 16 let
|
0