Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: User może zalogować się tylko 3 razy w ciągu np.
Forum PHP.pl > Forum > PHP
miedzna
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?
Najki
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ę).
mike
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.
miedzna
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?
Levabul
za pomocą znaku '<' ?
Oczywiście jeżeli daty masz w formacie unixowym.
miedzna
smile.gif no tak

dzięki i pozdrawiam
crash
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...
php programmer
to tez jeszcze wszystko zalezy czy od jakiego momentu liczysz tydzien
czy od pierwszego logowania czy tez od np poniedzialku
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.