![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 278 Pomógł: 35 Dołączył: 25.06.2010 Ostrzeżenie: (0%) ![]() ![]() |
Dokładnie jak w temacie.
Czy znacie jakiś sposób aby sprawdzić czy strona jest aktualnie otwarta na jakimś innym komputerze. Chodzi o to żeby kilku użytkowników na raz nie mogło mieć uruchomionej owej strony. Wdzięczny będę za jakiekolwiek podpowiedzi ![]() |
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 678 Pomógł: 124 Dołączył: 26.09.2009 Ostrzeżenie: (0%) ![]() ![]() |
Przy logowaniu zapisujesz sobie do bazy ip, z którego użytkownik się zalogował. Jeśli jest inne to wywalasz go do logowania i system się powtarza
![]() -------------------- Napisane z palca! <- to tak dla lansu ;)
FancyStudio.pl - Tworzenie Stron WWW w Oparciu o XHTML, CSS, JS, PHP i MySQL. Mój blog :: Portfolio Fotograficzne Igora Biedrawy |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 278 Pomógł: 35 Dołączył: 25.06.2010 Ostrzeżenie: (0%) ![]() ![]() |
a w jaki sposób miałoby się odbywać kasowanie ip z bazy gdy ten co oglądał wyłącza stronę ?
|
|
|
![]()
Post
#4
|
|
![]() Grupa: Moderatorzy Postów: 4 362 Pomógł: 714 Dołączył: 12.02.2009 Skąd: Jak się położę tak leżę :D ![]() |
Zależnie od systemu kontroli. Pomysłów może być wiele. Robisz timestamp, ip i stronę jako kolumny rekordu. Sprawdzasz czy dana strona ma już IP przypisane. Jeśli tak -> ktoś jej używa. Sprawdzasz czy to samo IP. Jeśli nie -> zablokowana przez kogoś. Jeśli dany user jest zalogowany ale czas jest dość duży, możesz ewentualnie "zdjąć" blokadę i uznawać że jest ona wolna. To takie zabezpieczenie przed: "zapomniałem się wylogować, a mam sesję ustawioną na kilka dni ważną"
![]() -------------------- Najpierw był manual... Jeśli tam nie zawarto słów mądrości to zapytaj wszechwiedzącego Google zadając mu własciwe pytania. A jeśli i on milczy to Twój problem nie istnieje :D
|
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 278 Pomógł: 35 Dołączył: 25.06.2010 Ostrzeżenie: (0%) ![]() ![]() |
Tak tylko problem który ja widzę wygląda następująco:
Ktoś wchodzi na stronę -> do bazy idzie info że na owej stronie ktoś siedzi (zagadnienie dotyczy tylko jednej strony w całym systemie - do samego systemu może być zalogowanych wielu użytkowników) Ktoś drugi próbuje wejść na tą stronę -> strona pobiera info z bazy i się okazuje że ktoś już na owej stronie siedzi. I nie można strony wyświetlić. Problem zaczyna się dopiero przy zdejmowaniu owej blokady. Nie chce narzucać czasu który może ktoś na stronie spędzić, bo to może uniemożliwić pracę osób które będą na niej... Mogę użyć opcji onunload i przy jej pomocy usunąć z bazy blokadę, ale wiadomo jak z nią jest. Niektóre przeglądarki blokują to i owo i opcja ta nie zadziała jak np komputer zostanie odcięty od prądu, tudzież uderzy weń wielki meteor, czy coś... (poprawcie mnie jeśli się mylę)... Nie istnieje w php jakaś funkcja która wysyła do serwera zapytanie czy dana strona jest przeglądana przez kogokolwiek? To by mi rozwiązało cały problem .... |
|
|
![]()
Post
#6
|
|
![]() Grupa: Moderatorzy Postów: 4 362 Pomógł: 714 Dołączył: 12.02.2009 Skąd: Jak się położę tak leżę :D ![]() |
Takiej nie ma. Ale możesz zawsze wysyłać z AJAX dane kontrolne, które informują serwer, że strona jest u kogoś otwarta. Przykładowo co 2 minuty czy ile tam chcesz. Jeśli serwer nie dostaje odpowiedzi -> strona wolna. Innymi słowy jeśli timestamp strony w bazie jest niższy niż czas aktualny pomniejszony o limit czasu -> userowi coś padło i to blokujący-zombie.
-------------------- Najpierw był manual... Jeśli tam nie zawarto słów mądrości to zapytaj wszechwiedzącego Google zadając mu własciwe pytania. A jeśli i on milczy to Twój problem nie istnieje :D
|
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 278 Pomógł: 35 Dołączył: 25.06.2010 Ostrzeżenie: (0%) ![]() ![]() |
O to to to.. Coś takiego mi trzeba
To kolejne pytanie jak taka funkcja ma wyglądać i jak ją podpiąć? Bo z AJAXa to ja ani be ani me... Chyba że to zagadnienie na oddzielny temat, to pytania nie było ![]() |
|
|
![]()
Post
#8
|
|
![]() Grupa: Moderatorzy Postów: 4 362 Pomógł: 714 Dołączył: 12.02.2009 Skąd: Jak się położę tak leżę :D ![]() |
Zobacz sobie jQuery i obsługę AJAX w nim, bo jest bardzo uproszczona i nie jest to kosmos wcale. Co jakiś czas (setInterval choćby) byś wysyłał odpowiednie info na serwer jaką stronę "blokujesz".
-------------------- Najpierw był manual... Jeśli tam nie zawarto słów mądrości to zapytaj wszechwiedzącego Google zadając mu własciwe pytania. A jeśli i on milczy to Twój problem nie istnieje :D
|
|
|
![]()
Post
#9
|
|
![]() Grupa: Zarejestrowani Postów: 278 Pomógł: 35 Dołączył: 25.06.2010 Ostrzeżenie: (0%) ![]() ![]() |
Dobra, to będę tam szukał rozwiązania, w razi co będę zasypywał lamerskimi pytaniami ;] Puki co dzięki za pomoc.
|
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 25.07.2025 - 01:06 |