miedzna
27.12.2005, 11:21:09
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
27.12.2005, 11:28:00
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
27.12.2005, 11:29:54
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
28.12.2005, 10:10:27
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
28.12.2005, 10:18:13
za pomocą znaku '<' ?
Oczywiście jeżeli daty masz w formacie unixowym.
miedzna
28.12.2005, 10:37:04

no tak
dzięki i pozdrawiam
crash
28.12.2005, 11:52:13
Oczywiście nic nie stoi na przeszkodzie by porównywać w bazie daty typu DATE czy DATETIME, np.:
SELECT now() > date_sub( now(), interval 1 hour );
Zwraca 1...
php programmer
28.12.2005, 11:56:25
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.