![]() |
![]() ![]() |
![]() |
![]()
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?
|
|
|
![]()
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ę). -------------------- |
|
|
![]()
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. |
|
|
![]()
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? |
|
|
![]()
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. -------------------- ![]() |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 401 Pomógł: 1 Dołączył: 10.03.2004 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
![]() dzięki i pozdrawiam |
|
|
![]()
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.:
Zwraca 1... -------------------- |
|
|
![]()
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 |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 19.07.2025 - 07:45 |