Loading:


    Aktywacja konta przez E-Mail

    W tym artykule zajmiemy się aktywacją kont poszczególnych użytkowników za pomocą wcześniej podanych przez nich adresów emailowych.
    Ogólne działanie skryptu będzie polegało na:
    - rejestracji użytkownika
    - sprawdzenie poprawności wprowadzonych danych
    - wysłanie listu z kodem aktywacyjnym
    - aktywacja konta, jeśli kod oraz pozostałe parametry zgadzają się


    Mamy już tabelę users oraz jej następujące pola:
    - u_id - przechowywuje ID użytkownika
    - u_name - jego nazwę
    - u_password - jego hasło zakodowane algorytmem SHA1()
    - u_activation_key - zaiwera klucz aktywacyjny
    - u_acvtive - mówi nam czy użytkownik aktywował konto (1) lub nie (0)


    Teraz objaśnienia. Na początku sprawdzamy czy dane z formularza spełniają nasze warunki. Jeśli tak to tworzymy list z nagłówkami i wysyłamy go na podany email oraz tworzymy nowy rekord z danymi użytkownika w bazie danych. Warunek z $_GET[active] pozwala na wykonanie operacji aktywowania. Tutaj sprawa jest prosta: jeśli klucz aktywacyjny istnieje w bazie to ustawiamy usera na aktywnego, jeśli nie to znaczy, że klucz już został użyty lub poprostu nie istnieje. Na samym końcu ładujemy wcześniej utworzony formularz rejestracyjny.



    Napisz Artyku³

    Listing

    CREATE TABLE users (
      u_id int(11) NOT NULL auto_increment,
      u_name varchar(32) NOT NULL default '',
      u_password varchar(40) NOT NULL default '',
      u_email varchar(64) NOT NULL default '',
      u_activation_key varchar(40) NOT NULL default '',
      u_active int(1) NOT NULL default '0',
      PRIMARY KEY  (u_id)
    ) ENGINE=MyISAM DEFAULT CHARSET=utf8;

    Plik form.inc:
    <form action="register.php" method="post">
    <input type="hidden" name="regEnd" value="true">
    Nazwa <input type="text" name="userName" maxlength="32"><br>
    Hasło <input type="text" name="userPasswd1" maxlength="8"><br>
    Powtórz Hasło <input type="text" name="userPasswd2" maxlength="8"><br>
    Podaj E-Mail <input type="text" name="userEmail" maxlength="64"><br>
    <input type="submit" value="Rejestruj">
    </form>

    Plik register.php:
    <?php
    if($_POST["regEnd"]=="true")
    {
       $query=mysql_query("SELECT * FROM users WHERE u_name='$_POST[userName]' ");
       if(!$_POST["userName"] OR !$_POST["userPasswd1"] OR !$_POST["userPasswd2"] OR !$_POST["userEmail"])
       {
               print"Nie wypelniono wszystkich pól";
       }
       elseif($_POST["userPasswd1"]!=$_POST["userPasswd2"])
       {
               print"Podane hasła nie sa takie same";
       }
       elseif(!eregi("^[_.0-9a-z-]+@([0-9a-z][0-9a-z-]+.)+[a-z]{2,4}$",$_POST["userEmail))
       {
               print"
    Podany email nie jest prawidłowy";
       }
       elseif(strlen($_POST["
    userName"])<4 OR strlen($_POST["userPasswd1"])<4)
       {
               print"
    Nazwa i hasło muszą miec przynajmniej 4 znaki";
       }
       elseif(mysql_num_rows($query)==1)
       {
               print"
    Podana nazwa uzytkownika jest juz zajęta. Wybierz inna";
       }
       else
       {
               $_POST["
    userPasswd1"]=SHA1($_POST["userPasswd1"]);
               $actCode=str_shuffle("
    qwertyuiopasdfghjklzxcvbnm1234567890");
               $headers="
    MIME-Version: 1.0\r\n";
               $headers.="
    Content-type: text/html; charset=iso-8859-2\r\n";
               $content="
    <html><head><title>Aktywacja Konta</title</head>
                                               <body>
                                               Aby aktywować konto na stronie XXXX musisz kliknąć poniższy link aktywujący:<br>
                                               <a href=\"http://twojastrona.com/www/register.php?active=".$actCode."\"> http://twojastrona.com/www/register.php?active=".$actCode." </a><br>
                                                    Dziękuje admin strony XXXX</body></html>"
    ;
                    mail($_POST["userEmail"], "Link Aktywacyjny", $content, $headers);
               mysql_query("INSERT INTO users (u_name, u_password, u_email, u_activation_key) VALUES('$_POST[userName]', '$_POST[userPasswd1]', '$_POST[userEmail]', '$actCode')");
     print"Zostales zarejestrowany pomyslnie, jednak ta strona wymaga aktywacji kont przez email. Na podany adres emailowy zostal wyslany klucz aktywacyjny. Email powinien zostac wyslany w ciagu kilku minut, jesli tak sie nie stanie skontaktuj sie z administratorem strony.":
            }
    }
    elseif($_GET["active"])
    {
       mysql_query("UPDATE users SET u_active=1 WHERE u_activation_key='$_GET[active]' ");
       if(mysql_affected_rows()==1)
            {
                     print"Aktywacja ukonczona pomyślnie. Możesz już korzystać z naszego serwisu.";
             }
             else
             {
                      print"Podano nieistniejący kod aktywacyjny.";
              }
    }
    else
    {
    include"form.inc";
    }
    ?>




    Dodano przez: bravura Ranga: 0 Punktów: 0
    Komentarze użytkowników
    hmmmm dobre dobre
    autor: adel1995 | 5946 | 2010-07-25 22:11:28


    bardzo przydatne info
    autor: bimbo20 | 6358 | 2010-09-26 16:01:35


    dziękuję za skrypt. Wszystko działa idealnie :)
    autor: mdnm | 6717 | 2010-10-16 15:34:31


    Właśnie tego szukałem :)
    autor: pudi | 12190 | 2011-01-15 19:30:30


    Nie wysyła mi wiadomości kod:
    • Zobacz kod dodany do tego wpisu
      • $login = czysc($login);
                                $haslo1 = czysc($haslo1);
                                $haslo2 = czysc($haslo2);
                                $email = czysc($email);
                                $gg= czysc($gg);
                                $avatar = czysc($avatar);
                                $kibic = czysc($kibic);
                   $actCode=str_shuffle("qwertyuiopasdfghjklzxcvbnm1234567890");
                   $headers="MIME-Version: 1.0\r\n";
                   $headers .="Content-type: text/html; charset=iso-8859-2\r\n";
                   $content='<html><head><title>Aktywacja Konta</title</head>
                                                   <body>
                                                   Aby aktywować konto na stronie XXXX musisz kliknąć poniższy link aktywujący:<br>
                                                   <a href=\"http://twojastrona.com/www/register.php?active='.$actCode.'\"> http://twojastrona.com/www/register.php?active='.$actCode.' </a><br>
                                                        Dziękuje admin strony XXXX</body></html>';
                        mail($email, "Aktywacja Konta na stronie Transferyligowe.pl", $content, $headers);
         mysql_query("INSERT INTO users (login, haslo, email, data, poziom, avatar, gg, kibic, activation_key) VALUES('$login', md5('$haslo1'), '$email', NOW(), '$poziom', '$avatar','$gg', '$kibic', '$actCode')");
         print"Zostales zarejestrowany pomyslnie, jednak ta strona wymaga aktywacji kont przez email. Na podany adres emailowy zostal wyslany klucz aktywacyjny. Email powinien zostac wyslany w ciagu kilku minut, jesli tak sie nie stanie skontaktuj sie z administratorem strony.";
           
    autor: pudi | 12192 | 2011-01-15 20:42:57


    Może być...
    autor: adikso | 12468 | 2011-06-11 15:53:46


    Niech będzie
    autor: frox1991 | 12710 | 2012-01-15 22:08:03


    Przydatna rzecz
    autor: administrator | 12717 | 2012-01-21 19:48:05


      • Tre¶æ komentarza
        Kod do komentarza (opcjonalnie)
        PHP JavaScript MySQL Smarty SQL HTML CSS ActionScript
        Autor
        Token
        token

         

         








    funkcje.net
    Wszelkie prawa zastrzeżone©. | Funkcje.net 2008-2025 v.1.5 | design: diviXdesign & rainbowcolors