Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Jak działa generator potwie. rejestracji mail'em
Forum PHP.pl > Forum > PHP
rgg
Witam,
Może mi ktoś poleć jakiś link do kursu lub książkę dla początkujących
w której znajdę opis tworzenia potralu zaczynając od kodów php i opisu jak działa generator potwierdzający rejetrację konta użytkownika w serwisie:) worriedsmiley.gif

Przenoszę: Skrypty php -> php / crashu
chmolu
Sprawa jest bardzo prosta. Może to wyglądać tak:

masz tabele:
user_id
user_login
user_confirmed
user_confirm_code

generujesz takie coś:
$hash = md5(uniqid(time()).

Zapisujesz w bazie i jednocześnie wysyłasz maila z linkiem:
www.foo.pl/activate.php?user_id=1&code=$hash

W skrypcie activate.php porównujesz czy hash w linku jest identyczny z tym w bazie. Jeśli tak to zmieniasz pole user_confirmed na 1.
miedzna
Zrobiłem coś takiego, rozwiązanie amatorskie, ale działa smile.gif

rejestrujesz usera z domyślna $aktywacja=0 (niezarejestrowany) i wysyłasz do niego maila. Zmienna hash generowana jest za pomoca md5, natomiast nazwisko, to wiadomo oso chodzi smile.gif (możesz używać id, bylo by nawet lepsze):

zamow.php
  1. <?php
  2.  
  3. // generujesz unikalny hash
  4.  
  5. $hash = md5(uniqid(time()));
  6.  
  7. // jezeli rejestracja przebiegła bez zakłóceń, to wysyłasz maila:
  8.  
  9. mail($email, $temat, &#092;"Dziękujemy bla bla bla.nŻeby potwierdzić zamówienie kliknij w poniższy link
    :nhttp://localhost/potwierdz.php?hash=$hash&nazwisko=$nazwisko\", $nadawca);
  10.  
  11. ?>


a teraz plik, który aktywuje konto, zmienia $aktywacja=1 (zarejestrowany)

potwierdz.php
  1. <?php
  2.  
  3. include('config.php');
  4.  
  5. // sprawdzasz, czy zgadza się hash i nazwisko i czy konto jeszcze nie zostało akty
  6. owane
  7.  
  8. $sql = &#092;"SELECT id FROM zamowienia WHERE hash = '$hash' AND nazwisko = '$nazwisko' AND (aktywacja != '1')\";
  9. $result = mysql_query($sql);
  10. if(mysql_num_rows($result) == 0) {
  11. print '<center><h2>Zamówienie zostało już potwierdzone,<BR>albo hash lub nazwisko są błędne.</h2></center>';
  12. }
  13.  
  14. // a teraz aktywujesz konto zmieniasz wartość zmienne aktywacja na 1
  15.  
  16. $sql2 = &#092;"UPDATE zamowienia SET aktywacja='1' WHERE hash = '$hash' AND nazwisko = '$nazwisko'\";
  17. $result2 = mysql_query($sql2);
  18. print &#092;"<center><h1>Dziękujemy za potwierdzenie zamówienia</h1><BR><h2>Teraz możesz skasować tę wiadomość</h2></center>\";
  19.  
  20. ?>
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.