Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Detekcja ilości otwartych okien
Forum PHP.pl > Forum > Przedszkole
ppatrykp
witam, jak w temacie. Będę miał okienko, w którym otwieram panel do kamery IP i problem polega na tym, że takich paneli otwartych może być max np 10. Natomiast jeden użytkownik może mieć otwarte np jedno okno z panelem, nie więcej.

Proszę poradźcie, podpowiedzcie jak się za to zabrać.

pozdrawiam
Paweł
vokiel
Maksymalną liczbę otwartych okienek możesz zrobić po stronie serwera. Przy każdym otwarciu strony zpisywać do bazy godzine wejścia. Dodatkowo jak zapiszesz jakieś unikalne dane dla danego wejścia (przeglądarka + system + IP + jakis id sesji) to możesz później przy włączeniu drugiej instancji stronki sprawdzać czy dla tego usr jest już wpis. Jeśli dostęp do kamerki masz po zalogowaniu, wtedy nie ma problemu z identyfikacją danego użytkownika.

Gorzej jest z zamknięciem okienka, jest co prawda window.unload(). Możesz też co jakiś czas wysyłać ajaxem info o aktywności użytkownika - odświeżać wpis w bazie.

Pozdrawiam
ppatrykp
Twój pomysł jest dobry, lecz ma chyba jedną wadę, która jest dla mnie problemem. Ok ktoś pyka w otwarcie okienka, okienko się otwiera i zapisywane są dany przy otwarciu następnego już mogę to detekować ALE gdy ktoś zamknie to okno i potem znowu będzie chciał otworzyć to mu odmówi....

da się to jakoś rozwiązać?
vokiel
No właśnie tu przychodzi z pomocą funkcja window.unload(), przy wywołaniu której wysyłasz do bazy info, ze okienko zamknięto. Nie wiem co prawda jak to się ma do sytuacji gdy ktoś zamknie okienko przez np alt+f4.

Taką sytuacje można rozwiązać ajaxem.
Np:
1. Otwarcie okienka -> zapisanie do bazy id usr i termin waznosci okienka na 20sec
2. Co 20 sec ajax z otwartego okienka wysyla info przedluzenia czasu dla danego usr +20sec
3. Jesli usr zamknie okienko -> po 20sec znow moze otworzyc
4. Jesli okienko bedzie otwarte, ciagle w bazie bedzie istnial wpis, ze ten usr ma je otwarte
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.