Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> User może zalogować się tylko 3 razy w ciągu np., dnia, lub tygodnia, jak to kontrolować?
miedzna
post 27.12.2005, 11:21:09
Post #1





Grupa: Zarejestrowani
Postów: 401
Pomógł: 1
Dołączył: 10.03.2004
Skąd: Warszawa

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


Jak w temacie, jak kontrolować, i nie pozwolic, żeby user logował się więcej niz 3 razy w ciągu np doby, kilku godzin bądź kilku dni?
Go to the top of the page
+Quote Post
Najki
post 27.12.2005, 11:28:00
Post #2





Grupa: Zarejestrowani
Postów: 190
Pomógł: 0
Dołączył: 12.02.2004
Skąd: Poznań

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


W tabeli bazy danych przetrzymującej użytkowników dodaj sobie 2 pola: "ostatnie_logowanie" i "logowania_dzisiaj". W pierwszej zapisuj datę (bez godziny) za każdym razem, gdy użytkownik się zaloguje. Wcześniej sprawdź czy zapisywana data jest inna od daty już zapisanej w tym polu. Jeśli tak to również wyzeruj pole "logowania_dzisiaj".

Następnie sprawdzasz, czy wartość pola "ostatnie_logowanie" jest taka sama jak dzisiejsza data i jeśli tak to dodajesz 1 do pola "logowania_dzisiaj".

W ten sposób widzisz ile razy logował się ostatniego dnia i możesz w funkcji logującej go dorobić limit logowań na dobę (w podobny sposób możesz ustawić limit na miesiąc/godzinę/minutę itp. - po prostu za datę wstawiasz np. datę i godzinę, czy datę, godzinę i minutę).


--------------------
Go to the top of the page
+Quote Post
mike
post 27.12.2005, 11:29:54
Post #3





Grupa: Przyjaciele php.pl
Postów: 7 494
Pomógł: 302
Dołączył: 31.03.2004

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


To tabeli z userami dodaj dwa pola: ilość_logowań i data_1_logowania
1. Podczas logowania sprawdzasz datę: jeśli różnica do dzić jest większa niż doba dodajesz do liczby logowań jeden (0 + 1) i logujesz.
2. Jeśłi jest mniej niż doba, sprawdzasz ilość logowań.
3. Jeśli jest mniej niż 3. Logujesz i dodajesz jeden do liczby.
Jeśli jest 3 nie pozwalasz na zalogowanie.

Datę logowania zapisujesz podczas pierwszego logowania i nadpisujesz po "przekręceniu się" licznika.

Ja bym to tak mniej więcej widział.

@Najki Twoje rozwiązanie pozwala się zalogować trzy razy każdego dnia. A nie trzy razy w ciągu doby.
Go to the top of the page
+Quote Post
miedzna
post 28.12.2005, 10:10:27
Post #4





Grupa: Zarejestrowani
Postów: 401
Pomógł: 1
Dołączył: 10.03.2004
Skąd: Warszawa

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


Cytat(mike_mech @ 2005-12-27 12:29:54)
Podczas logowania sprawdzasz datę: jeśli różnica do dzić jest większa niż doba dodajesz do liczby logowań jeden (0 + 1) i logujesz.

Jak można sprawdzać datę która większa?
Go to the top of the page
+Quote Post
Levabul
post 28.12.2005, 10:18:13
Post #5





Grupa: Zarejestrowani
Postów: 197
Pomógł: 0
Dołączył: 11.07.2005

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


za pomocą znaku '<' ?
Oczywiście jeżeli daty masz w formacie unixowym.


--------------------
Go to the top of the page
+Quote Post
miedzna
post 28.12.2005, 10:37:04
Post #6





Grupa: Zarejestrowani
Postów: 401
Pomógł: 1
Dołączył: 10.03.2004
Skąd: Warszawa

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


smile.gif no tak

dzięki i pozdrawiam
Go to the top of the page
+Quote Post
crash
post 28.12.2005, 11:52:13
Post #7





Grupa: Przyjaciele php.pl
Postów: 2 196
Pomógł: 2
Dołączył: 17.01.2004
Skąd: Sosnowiec

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


Oczywiście nic nie stoi na przeszkodzie by porównywać w bazie daty typu DATE czy DATETIME, np.:
  1. SELECT now() > date_sub( now(), interval 1 hour );

Zwraca 1...


--------------------
Go to the top of the page
+Quote Post
php programmer
post 28.12.2005, 11:56:25
Post #8





Grupa: Zarejestrowani
Postów: 1 045
Pomógł: 5
Dołączył: 8.11.2004
Skąd: trójmiasto

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


to tez jeszcze wszystko zalezy czy od jakiego momentu liczysz tydzien
czy od pierwszego logowania czy tez od np poniedzialku
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: 19.07.2025 - 07:45