[php][mysql]Aktywacja konta

0

Pisze wlasnie forum oparte na php i mysql i chcialbym zrobic aktywacje konta uzytkownika poprzez klikniecie linka ktory uzytkownik otrzymalby w emailu podanym przy rejestracji. Jest to mechanizm dosc powszechny , macie moze jakies sugestie.

Z gory dzieki
pozdr

0

A czego nie wiesz? Dajesz linka do skryptu, zalaczajac w GET wszelkei potrzebne informacje, np.id uzytkownika, jakis losowy token dla sprawdzenia czy to na pewno ten mail (generowany losowo i zapamietywany w bazie na chwile) i w sumie tyle...

0

... To jest banalne.

  1. Robisz Formularz (wiadomo rejestracja)
  2. Tworzysz baze danych, masz 2 możliwości:
  • Albo oddzielna baza o nazwie np: aktywacja, a w niej masz:
    user_id, aktywacja, kod
    np: 12345, tak (albo 1 albo True - jak wolisz), AAA000CCC
  • Albo jak robisz baze z wszystkimi informacjami o użytkowniku to tam dodajesz kolumny kod, aktywacja
  1. Możesz dorobić także date aktywacji, date rejestracji itp.
  2. Tworzysz generator kodu:
<?
function kod_aktywacyjny($dlugosc_kodu)
  {
   $znaki = "ABCDEFGHIJKLMNOPRSTUWXYZabcdefghijklmnopqrstuvwxyz1234567890";
   for($i=0;$i<$dlugosc_kodu;$i++)
   {
     $aktyw .= $znaki{rand(0,strlen($znaki))};
   }
   return $aktyw;
  }
$kod = kod_aktywacyjny(50);
?>

50 - jest to ilość znaków w kodzie aktywacyjnym.

  1. Wiadomo teraz tworzysz odwołanie do bazy, dodajesz info o kodzie i inne takie.
  2. Teraz sprawdzanie poprawności kodu:
<?
if(($user_id != "") && ($kod != "")){

ŁĄCZYSZ SIĘ Z BAZĄ DANYCH, SPRAWDZASZ CZY KOD ZGADZA SIĘ Z USER_ID, JEŻELI TAK TO ROBISZ UPDATE BAZY Z AKTYWACJA false na true (np. albo z 0 na 1 albo z nie na tak) I PISZESZ ŻE AKTYWACJA UDANA. 
} else 
if(($user_id == "") && ($kod == "")){
PISZESZ ZE KOD ZOSTAŁ WYSŁANY
}
?>

Jeżeli chcesz dokładniejsze info o kodzie to napisz tutaj lub do mnie [email protected]

1 użytkowników online, w tym zalogowanych: 0, gości: 1