Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [HTML][MySQL][PHP] Aktywacja za pomocą e-mail
Forum PHP.pl > Forum > Przedszkole
bubus_s
Czesc pisze już kolejny raz może i o tym już wspominałem potrzebuję
aktywację e -mail

może byc to aktywacja kont chociarz mi do czego innego będzie potrzebna aktywacja ale to już dostosuje do własnych potrzeb a wiec potrzebuje aktywacji konta za pomoca e-mail
Prosze o pomoc i pozdrawiam

P.S sory ze nie wszedzie polskie znaki ale klawiatura szwankuje
taro
Może jakiś wpis do bazy z ciągiem losowych znaków?

I później wywołanie strony np.

aktywacja.php?mail=mail@mail.pl&jakisciag=124cazci134knczxkljf23452


i następnie na tej podstawie select do bazy, w przypadku znalezienia zmieniamy jakąś kolumnę w bazie użytkowników, która odpowiada za konto aktywne?

Być może są jakieś lepsze rozwiązania, ale teraz na sobotę rano to mi przychodzi do głowy.
kingofspace
ja bym to zrobił tak do tabelki w bazie gdzie masz userów dodajesz pole status i kluczyk

w pliku z rejestracją wysyłasz maila z jakims opisem i generowanym linkiem
  1.  
  2. www.twojadresstrony.pl/confirm.php?id=$id&kluczyk=$kluczyk
  3.  


id pobierasz zabazy kluczyk generujesz np mozesz date z godzine i seukunde zapisac do zmiennej przepuscisz przez md5 i masz kluczyk go dodajesz do bazy

w pliku confirm.php odbierasz dane z GET i robisz prostego update rekordu
proste?
bubus_s
Nie bardzo działanie jak to ma byc znam ale bardziej jakies skrypty mnie interesuja
Jezeli by dało rade allbo jakis tutek
Wicepsik
Tutaj się pomaga, a nie daje gotowy kod.
bubus_s
Czy ja mówię o gotowym kodzie
Nie wiem jak zacząc puźniej wam pokaże jeden kod który znalazłem w necie ale mam z nim problem
piotr94
1. podczas rejestracji wysyłasz e-mail z danymi do aktywacji (np. id użytkownika, klucz rejestracji) ten sam klucz rejestracji zapisujesz w bazie danych
2. przy wejściu na stronę www.adres.pl/activation.php?id_usera=1&klucz=1234567890qwerty sprawdzasz czy klucz dla usera o id 1 w bazie zgadza się z tym podanym w linku, jeśli tak usuwasz klucz z bazy i dajesz w polu DB aktywny wartość 1
Fifi209
Cytat(piotr94 @ 28.11.2009, 13:43:50 ) *
1. podczas rejestracji wysyłasz e-mail z danymi do aktywacji (np. id użytkownika, klucz rejestracji) ten sam klucz rejestracji zapisujesz w bazie danych
2. przy wejściu na stronę www.adres.pl/activation.php?id_usera=1&klucz=1234567890qwerty sprawdzasz czy klucz dla usera o id 1 w bazie zgadza się z tym podanym w linku, jeśli tak usuwasz klucz z bazy i dajesz w polu DB aktywny wartość 1


Jeżeli nie ma klucza to oznacza, że konto jest aktywowane, więc nie widzę powodu, aby robić kolejne pole.
bubus_s
Dobrze Postaram się coś zrobic rady są dobre
Mam taki kod
  1. <?php
  2. if($_POST["regEnd"]=="true")
  3. {
  4. $query=mysql_query("SELECT * FROM users WHERE u_name='$_POST[userName]' ");
  5. if(!$_POST["userName"] OR !$_POST["userPasswd1"] OR !$_POST["userPasswd2"] OR !$_POST["userEmail"])
  6. {
  7. print"Nie wypelniono wszystkich pól";
  8. }
  9. elseif($_POST["userPasswd1"]!=$_POST["userPasswd2"])
  10. {
  11. print"Podane hasła nie sa takie same";
  12. }
  13. elseif(!eregi("^[_.0-9a-z-]+@([0-9a-z][0-9a-z-]+.)+[a-z]{2,4}$",$_POST["userEmail))
  14. {
  15. print"Podany email nie jest prawidłowy";
  16. }
  17. elseif(strlen($_POST["userName"])<4 OR strlen($_POST["userPasswd1"])<4)
  18. {
  19. print"Nazwa i hasło muszą miec przynajmniej 4 znaki";
  20. }
  21. elseif(mysql_num_rows($query)==1)
  22. {
  23. print"Podana nazwa uzytkownika jest juz zajęta. Wybierz inna";
  24. }
  25. else
  26. {
  27. $_POST["userPasswd1"]=SHA1($_POST["userPasswd1"]);
  28. $actCode=str_shuffle("qwertyuiopasdfghjklzxcvbnm1234567890");
  29. $headers="MIME-Version: 1.0\r\n";
  30. $headers.="Content-type: text/html; charset=iso-8859-2\r\n";
  31. $content="<html><head><title>Aktywacja Konta</title</head>
  32. <body>
  33. Aby aktywować konto na stronie XXXX musisz kliknąć poniższy link aktywujący:<br>
  34. <a href=\"http://twojastrona.com/www/register.php?active=".$actCode."\"> <a href="http://twojastrona.com/www/register.php?active=&quot;.$actCode.&quot;" target="_blank">http://twojastrona.com/www/register.php?ac...;actCode."</a> </a><br>
  35. Dziękuje admin strony XXXX</body></html>";
  36. mail($_POST["userEmail"], "Link Aktywacyjny", $content, $headers);
  37. mysql_query("INSERT INTO users (u_name, u_password, u_email, u_activation_key) VALUES('$_POST[userName]', '$_POST[userPasswd1]', '$_POST[userEmail]', '$actCode')");
  38. 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.":
  39. }
  40. }
  41. elseif($_GET["active"])
  42. {
  43. mysql_query("UPDATE users SET u_active=1 WHERE u_activation_key='$_GET[active]' ");
  44. if(mysql_affected_rows()==1)
  45. {
  46. print"Aktywacja ukonczona pomyślnie. Możesz już korzystać z naszego serwisu.";
  47. }
  48. else
  49. {
  50. print"Podano nieistniejący kod aktywacyjny.";
  51. }
  52. }
  53. else
  54. {
  55. include"form.inc";
  56. }
  57. ?>


Brakuje jakiś nawiasów czy cos bo mi śpiewa błąd
Cytat
Parse error: syntax error, unexpected '"', expecting T_STRING or T_VARIABLE or T_NUM_STRING in /var/www/sites/yoyo.pl/b/u/bubuss/opinia/register.php on line 13


bubus_s
Dobrze dziękuje za odpowiedź ale może pomoc do w/w kodu
Kredka29
  1. elseif(!eregi("^[_.0-9a-z-]+@([0-9a-z][0-9a-z-]+.)+[a-z]{2,4}$",$_POST["userEmail))

Ekspertem nie jestem, ale czy tam nie brakuje kwadratowego nawiasu na końcu?
  1. elseif(!eregi("^[_.0-9a-z-]+@([0-9a-z][0-9a-z-]+.)+[a-z]{2,4}$",$_POST["userEmail"])
bubus_s
Rację masz ale to nie koniec błędów

Dalej znów krzyczy
Cytat
Parse error: syntax error, unexpected T_STRING, expecting ']' in /var/www/sites/yoyo.pl/b/u/bubuss/opinia/register.php on line 15
Wicepsik
Tak ciężko poszukać błędu? Masz dokładnie podaną linijkę. Policz sobie wszystkie nawiasy, apostrofy i cudzysłowy.
bubus_s
Liczyłem i chyba dobrze ale nie oznacza to że konkretnie mi w tej lini bład będzie
Pozatym nie wiem po co tam jest
  1. {2,4}$",$_POST["userEmail"])

  1. ta $ przed $_POST


Nie wiem po co ten dolar hmm
Fifi209
Dolar na końcu wyrażenia regularnego jest - i tak ma zostać czemu? Poczytaj o wyrażeniach regularnych.

Brakuje Ci chyba ) ale pokaż swój przerobiony kod.
bubus_s
Problem pomógł mi rozwiązac kolega dziękuje za chęci i za wszystko ja tu jeszcze napewno napisze

Pozdrawiam;]
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.