Autor Zpráva
banana
Profil *
potrebujem spravit registraciu po ktorej bi pol na zadani mail odoslani aktivacni mail. dakujem
bukaj
Profil
banana
Obávám se, že sis spletl kategorii ;)
banana
Profil *
preco?
splite
Profil
První se zamysli jestli to není jen otravování a jestli opravdu nutně potřebuješ v db funkční adresy. Není? Tak tady máš bleskový postup:

Uděláš si v tabulce registrace sloupec (varchar (32) ) navíc, pojmenuješ ho třeba "auth"...
Při samotné registraci vytvoříš náhodný string (třeba mou funkcí) a do tohoto sloupce ho vložíš.
function getMyHashPiece(){
 return substr(md5(time()+rand(0,100)), rand(0,16), rand(17,32));
}

(vrátí mezi 2 a 32 znaky)

odešleš mail:
mail($adresa, "registrace", "klikni sem: [url=http]http://URL/[/url]mailauth.php?auth=".$auth_hash_stejny_jako_jsi_pri_registraci_pouzil_v_tabulce);

(forum mi pořád z toho dělá link... snad pobereš jak to myslím)

a do mailauth.php dáš něco ve smyslu:
 $zaznam = mysql_fetch_array(mysql_query("SELECT * FROM tabulka_s_registracemi WHERE auth = ".mysql_escape_string($_GET['auth'])." LIMIT 1;"));
 if(!empty($zaznam['auth'])){
  mysql_query("UPDATE tabulka_s_registracemi SET auth = '1' WHERE auth =".$zaznam['auth']." LIMIT 1;");
  echo "Ok, teď se už přihlas.";
} else {
  echo"hmm... žádná taková registrace tu není";
}


Ještě musíš obohatit tvoje přihlašovací query o pasáž:
 ... WHERE jmeno=$jmeno AND auth = 1 ...

Ten náhodný string nemůže mít beze změny v provedené v mailauth.php jediné číslo (pokud použiješ tu mou fci - ta totiž vrátí minimálně 2 znaky)
(postup je skutečně jen bleskový, aby jsi pochopil jak na to... musíš třeba ošetřit duplikaci auth (je to sice hodně nepravděpodobné, ale ne nemožné - třeba tak, že do mail linku dáš navíc ještě id nebo jméno nebo cokoliv...)

Zapomeň že tu za tebe budeme něco psát komplexně - jedině že by jsi přišel přesně s problémem a dodal přesný zdrojový kód. Ptal jsi se jak na to, tak jsem ti to napsal... Na svůj systém to ale musíš už napasovat sám.

s pozdravem, spl!te
mr.shark
Profil *
diki
nothrem
Profil
Ještě poznámka: sloupci 'auth' nastav UNIQUE index aby nemohlo nedocházelo ke kolizím...

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: