Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> potwierdzenie rejestracji, czy ktoś wie jak to napisać?
remstar
post
Post #1





Grupa: Zarejestrowani
Postów: 1
Pomógł: 0
Dołączył: 7.08.2005

Ostrzeżenie: (0%)
-----


Problemy:

1. Chciałbym, aby po rejestracji, użytkownik otrzymał e-mail z potwierdzeniem. W treści listu chciałbym umieścić link do strony, na której zostanie aktywowane jego konto. Jakie informacje powinny być poprzez ten link przekazywane?

2. Jak zorganizować usuwanie nieaktywowanego konta? Czy da się to zrobić automatycznie, czy będzie to robił administrator?

Z góry dzięki za rady i sugestie.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 10)
NuLL
post
Post #2





Grupa: Zarejestrowani
Postów: 2 262
Pomógł: 21
Dołączył: 3.05.2004
Skąd: Sopot, Krakow, W-wa

Ostrzeżenie: (0%)
-----


Skrypty forum -> php
Go to the top of the page
+Quote Post
Puciek
post
Post #3


TAO programowania


Grupa: Zarejestrowani
Postów: 340
Pomógł: 3
Dołączył: 25.03.2003
Skąd: ze słoika

Ostrzeżenie: (30%)
XX---


No to popatrz.
Do bazy gdzie dodales wpis uzytkownika, dodajesz jeszcze jedno pole o nazwie np. kod. Przy rejestracji wstawiasz tam cokolwiek, np. bierzesz losowe slowo i haszujesz je w md5 i zapisujesz je do bazy. Potem piszesz skrypt ktory przyjmuje argument z get-a np w forme aktywuj.php?kod=fgdf5gbfdg5 i skrypt sprawdza poprawnosci kodu i uaktywnia dane konto.

Co do drugiego problemu to poprstu zrob skrypt ktory raz dziennie sprawdzi czy wszyscy bez aktywowanej rejestracji maja np konto niestarsze niz 7 dni, jezeli tak to usuwasz.
Go to the top of the page
+Quote Post
LBO
post
Post #4





Grupa: Zarejestrowani
Postów: 1 415
Pomógł: 117
Dołączył: 7.09.2005
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


a czy nieaktywne konta bedzie usuwal admin.. hmmm.. to zalezy.. jezeli na serwie masz CRONA... podpinasz odpowiedni skrypt pod niego.. jezeli CRON'a jednak nie ma.. odpowiedni skrypt uruchamia Admin...
jest 3 mozliwosc: w kodzie strony..dodajesz kilka if'ow, czyli gdzies w pliku (albo w bazie danych) wpisujesz date i godzine..sprawdzasz te date przy kazdym uruchomieniu skryptu..jezeli minelo 24h uruchamiasz "kasowacz nieaktywnych kont" i wpisujesz w pliku (w DB) aktualne date i godz
Go to the top of the page
+Quote Post
dtb
post
Post #5





Grupa: Zarejestrowani
Postów: 476
Pomógł: 1
Dołączył: 5.11.2005
Skąd: Bieruń city

Ostrzeżenie: (0%)
-----


mozna zrobic zeby zamiast aktywacji do bazy dano jakies tam losowe haslo, np:
substr (md5 (microtime()),0 , 8);
a w mailu wyslac te haslo.
user se wchodzi do ustawien i je zmienia na takie jakie chce.
Go to the top of the page
+Quote Post
tiraeth
post
Post #6





Grupa: Przyjaciele php.pl
Postów: 1 789
Pomógł: 41
Dołączył: 30.10.2003
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


1. Dodajesz trzy pola do tabeli
Kod
user_active int(1) NOT NULL DEFAULT 0,
user_activation_code char(255) NOT NULL DEFAULT '',
user_registration_time int(9) NOT NULL DEFAULT UNIT_TIMESTAMP()

Po rejestracji użytkownika zapisujesz czas zarejestrowania (znacznik unixowy). Pole 'user_active' dajesz na 0. Generujesz kod aktywacyjny:
  1. <?php
  2. $activation_code = md5(uniqid(rand(), true));
  3. ?>

Tworzysz plik activate.php gdzie przez $_GET['code'] przekazesz kod aktywacji (wysyłasz mailem link http://strona.pl/activate.php?code=TEN_KOD) po czym sprawdzasz czy 'user_active = 0' a następnie jeżeli tak to aktualizujesz odpowiednie pola (zmieniasz user_activation_code na '')

2. CRON lub odpowiedni kod w np. index.php, jeżeli chcesz aby automat to za Ciebie robił... jeżeli chcesz to robić ręcznie to możesz do panelu administracyjnego nową stroną "Aktywacja użytkowników" zrobić a w niej wszystko co potrzebne (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
kszychu
post
Post #7





Grupa: Przyjaciele php.pl
Postów: 2 712
Pomógł: 23
Dołączył: 27.10.2003
Skąd: z kontowni

Ostrzeżenie: (0%)
-----


A po co zawalać sobie bazę przez nieużywane pole activation_code?
Nie lepiej zrobić md5 z loginu podanego podczas rejestracji, albo jeszcze lepiej z kilku pól naraz, np. sklejone razem login+haslo+data_aktywacji.
Go to the top of the page
+Quote Post
czachor
post
Post #8





Grupa: Zarejestrowani
Postów: 897
Pomógł: 40
Dołączył: 16.12.2003
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


2. Jeśli nie ma CRON'a to chyba lepiej jakiegoś triggera albo coś podobnego (oczywiście jeśli masz taką możliwość) wywoływanego przy np. SELECT'cie? Nie bedzie potrzeby zaprzęgać do tego jeszcze php...
Go to the top of the page
+Quote Post
ave
post
Post #9





Grupa: Zarejestrowani
Postów: 117
Pomógł: 2
Dołączył: 29.01.2004
Skąd: Rz-ów

Ostrzeżenie: (0%)
-----


Cytat(kszychu @ 2006-01-12 19:02:22)
A po co zawalać sobie bazę przez nieużywane pole activation_code?
Nie lepiej zrobić md5 z loginu podanego podczas rejestracji, albo jeszcze lepiej z kilku pól naraz, np. sklejone razem login+haslo+data_aktywacji.

a co potem jak user kliknie
w aktywuj?k=md5(login+haslo+data_aktywacji)
jechac do calej bazie wybierac md5(login+haslo+data_aktywacji) i ?
zaznaczyc pole aktywowany ?

ja osobiscie wole osobna tabele na userow nieaktywnych i jak sie aktywuje przerzucam do userow..
Go to the top of the page
+Quote Post
Vogel
post
Post #10





Grupa: Zarejestrowani
Postów: 402
Pomógł: 0
Dołączył: 20.01.2003

Ostrzeżenie: (0%)
-----


Cytat(ave @ 2006-01-13 02:29:34)
a co potem jak user kliknie
w aktywuj?k=md5(login+haslo+data_aktywacji)
jechac do calej bazie wybierac md5(login+haslo+data_aktywacji) i ?
zaznaczyc pole aktywowany ?

aktywowac usera przez podanie loginu i md5. a potem nie zaznaczac pole aktywowany tylko wypelnic LastLogin i wuala... dwa zupelnie zbedne (czy_aktywny i kod_aktywacji) pola odpadly z bazy
Go to the top of the page
+Quote Post
ToPeR
post
Post #11





Grupa: Zarejestrowani
Postów: 45
Pomógł: 0
Dołączył: 23.03.2004
Skąd: N 50°03

Ostrzeżenie: (0%)
-----


Ja doklejam do linku id usera oraz hash loginu+id+'jakis mi znany string'
np:
  1. <?php
  2.  
  3. $id // ID usera po rejestracji
  4. $login // login na jaki user się zarejestrował
  5. $link = 'register.php?a=active&userid='.$id.'&key='.md5($id.$login.'jakis tajny string');
  6.  
  7. ?>

i potem jak odbieram
to sprawdzam, czy podane ID w bazie, wyciągam login i porównuje:
  1. <?php
  2.  
  3. $id // ID usera po rejestracji
  4. $login // login na jaki user się zarejestrował
  5. if ($_GET['key']==md5($id.$login.'jakis tajny string')) { 
  6. // ustawiam użytkwnika na aktywny
  7. }
  8. else { // podejrzewane XSS (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)  }
  9.  
  10. ?>
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 15:27