Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Ograniczona liczba osób na stronie
Forum PHP.pl > Forum > PHP
jakub.drag
Witam,
głowię się nad tym już 4 dzień, a bez tego ani rusz sad.gif
Mianowicie (może macie jakiś gotowy - mile widziany) skrypt ograniczający wejścia na stronę? Że np. ograniczam do 10, i tylko 10 osób może być na stronie w jednej chwili. Innym po prostu odmawia się wejścia.
Jak zrobić, albo jak ktoś ma, i może dać, to... biggrin.gif
Sorrki, ale jestem załamany - próbowałem zrobić licznik, a potem na zasadzie if itp.
Pozdrawiam
lukaskolista
Zapisuj ip i czas wejscia. Pozniej policz ile jest rekordow, ktorych czas jest mniejszy, niz aktualny - 10 sekund (przyklad) i pogrupuj je po ip zeby nie wyszly glupoty. Masz ilosc osob online
jakub.drag
tylko, nie chodzi mi o to.. chodzi o to, by skrypt blokował stronę, gdy jest na niej np. więcej niż 10 użytkowników
gargamel
Możesz do tego wykorzystać javascript, a konkretnie to AJAX.
Odpalasz na stronie funkcję JS która powiedzmy co 5 sekund będzie uruchamiała w tle dodatkowy plik.
Owy dodatkowy plik będzie zapisywał do bazy ip danego użytkownika (lub jeśli masz logowanie - id zalogowanego ) oraz aktualny czas.
Żeby nie zapchać bazy, możesz usuwać wpisy starsze niż dajmy na to jeden dzień.
Przy sprawdzaniu ilu użytkowników siedzi na stronie, sprawdzasz ile jest wpisów będących 'świeższymi' niż te powiedzmy 5s.
To tak pokrótce, jak taki mechanizm może działać.
lukaskolista
IMO nie do konca dobry pomysl, bo 1 ip musi miec tylko 1 wpis lub wyniki musza byc grupowane po ip, inaczej 1 zlosliwa osoba zasymuluje 10 i nikt nie zobaczy strony.
Duzo szybsza alternatywa jest trzymanie tego w pliku.
gargamel
Oszczędziłem sobie szczegółów, ale tak właśnie powinno to wyglądać. Jeśli wchodzę na stronę, a moje ip już jest w bazie, to skrypt jedynie UPDATEuje czas wpisu z tym moim ip. Tak samo jeśli cały czas jestem na stronie, to skrypt nie dodaje nowych wpisów, tylko co np 5s aktualizuje czas w już istniejącym wpisie.
tehaha
no właśnie od tego jest konstrukcja INSERT ON DUPLICATE KEY UPDATE
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.