Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> potwierdzenie rejestracji, czy ktoś wie jak to napisać?
remstar
post 11.01.2006, 23:30:17
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 12.01.2006, 01:13:58
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


--------------------
Javascript, Coffeescript, Node.js, Mongo, CouchDb, chmury, workery & inne bajery - zycie jest zbyt krotkie aby miec nudna prace :)
Go to the top of the page
+Quote Post
Puciek
post 12.01.2006, 05:54:24
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.


--------------------

http://puciek.wordpress.com prywatnie o świecie
Go to the top of the page
+Quote Post
LBO
post 12.01.2006, 07:41:12
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 12.01.2006, 15:45:59
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 12.01.2006, 15:54:44
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 smile.gif
Go to the top of the page
+Quote Post
kszychu
post 12.01.2006, 16:02:22
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.


--------------------
"Coś się kończy, coś się zaczyna." Andrzej Sapkowski
Go to the top of the page
+Quote Post
czachor
post 13.01.2006, 00:11:34
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...


--------------------
how many SEO experts does it take to change a light bulb,lightbulb,light,bulb,lamp,lighting,switch,sex,xxx
5-Reasons-why-you-should-NEVER-fix-a-computer-for-free
Go to the top of the page
+Quote Post
ave
post 13.01.2006, 01:29:34
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 13.01.2006, 10:31:12
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 13.01.2006, 11:54:32
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 tongue.gif }
  9.  
  10. ?>


--------------------
WARSZTAT: Apache 1.3.27 | PHP 4.3.10 | MySQL 4.1 | PHPEd 4.0 or Pajączek 5.4.0 NxG | P4 2GHz | VIA P4PB400-FL | 1024MB DDR333
PROJEKTY
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 14.08.2025 - 00:06