![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 270 Pomógł: 0 Dołączył: 21.05.2008 Ostrzeżenie: (0%) ![]() ![]() |
potrzebuję wyświetlić ip wszystkich użytkowników będących online, dla jednego jest to proste, ale jak to zrobić dla wielu ?
|
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 468 Pomógł: 36 Dołączył: 14.12.2010 Ostrzeżenie: (0%) ![]() ![]() |
Sadze ze dla wielu bedzie wygladalo w 99% tak samo jak dla jednej. Osoba zarejestrowana wpisywana jest do bazy danych do tablicy np "zalogowani" (a po wylogowaniu kasowana). I nastepnie nalezy wyswietlic wszystkie ip.
|
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 270 Pomógł: 0 Dołączył: 21.05.2008 Ostrzeżenie: (0%) ![]() ![]() |
nie chodzi mi tylko o zalogowanych użytkowników będących online, ale o wszystkich użytkowników online będących w danej chwili
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 468 Pomógł: 36 Dołączył: 14.12.2010 Ostrzeżenie: (0%) ![]() ![]() |
Hmmm no prawda to jest ciezka sytuacja jednak zarowno dla jednej jak i dla wiekszej ilosci osob, poniewaz musisz okreslic warunki tego czy uzytkownik jeszcze jest na stronie. Np jezeli nie poruszal sie po podstronach przez 2 minuty znaczy ze juz go tam nie ma i mozna go usunac. Wydaje mi sie ze moznaby to zrobic tak samo jak mowilem wczesniej z tym ze skrypt ktory dziala caly czas. Przy kazdej akcji sie wykonuje. Uzytkownik wchodzi na strone i jego ip zostaje wpisane do sesji razem z jakims timestampem. Kazda operacja uzytkownika "odnawia" jego timestamp na aktualny.
Ja to widze mniej wiecej tak. W taki sam sposob mozna tylko na bazie (ale wedlug mnie takie operacje beda troche obciazajace bez przerwy monitorowac ozytkownikow) |
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 270 Pomógł: 0 Dołączył: 21.05.2008 Ostrzeżenie: (0%) ![]() ![]() |
może ktoś gdzieś się spotkał z podobnym problemem, ewentualnie natknął się na podobne skrypty, rozwiązania ?
|
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 715 Pomógł: 47 Dołączył: 5.12.2010 Ostrzeżenie: (0%) ![]() ![]() |
Może to okaże się pomocne.
|
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 270 Pomógł: 0 Dołączył: 21.05.2008 Ostrzeżenie: (0%) ![]() ![]() |
![]() |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 715 Pomógł: 47 Dołączył: 5.12.2010 Ostrzeżenie: (0%) ![]() ![]() |
Jest opisane jak przypisac ip do sesji.Zobacz jak wygląda licznik strony,i zamiast liczby ,do sesji przypisywać IP.
Ten post edytował Rid 9.09.2011, 23:13:05 |
|
|
![]()
Post
#9
|
|
![]() Grupa: Nieautoryzowani Postów: 2 249 Pomógł: 305 Dołączył: 2.10.2006 Ostrzeżenie: (0%) ![]() ![]() |
Sesje przechowujesz w bazie, przechowujesz tam też czas ostatniej akcji i IP.
Łopatologicznie można też zrobić to na pliku .txt. Ten post edytował pedro84 9.09.2011, 23:46:23 -------------------- Google knows the answer...
|
|
|
![]()
Post
#10
|
|
![]() Grupa: Zarejestrowani Postów: 270 Pomógł: 0 Dołączył: 21.05.2008 Ostrzeżenie: (0%) ![]() ![]() |
witam, problem już rozwiązałem. zrobiłem to mniej więcej tak:
1. zapisuję do bazy przy wejściu usera - ip, browser, nazwę usera i time() - jeżeli jest to "nowy user" 2. funkcja sprawdza czy ip, user i browser już są w bazie 3. jeżeli użytkownik już był to - update time() w bazie 4. jeżeli usera nie było (czyli jest po raz pierwszy - to insert nowego usera do bazy 5. porównuję time() z czasem z bazy 6. jezeli jest czas>(time()-180) to dodaję jako online, jeśli nie to nie 7. wyświetlam rezultat whil'em co o tym sądzicie, może ktoś ma jakieś ciekawe pomysły ? ps. ma to pewną wadę (przekłamanie) - mianowicie wchodząc na stronę automatycznie mój adres jest dodawany do bazy (czyli jestem online), natomiast po zalogowaniu jako admin pokazuje mi dwa adresy online - adres z przed zalogowania i drugi taki sam po zalogowaniu. |
|
|
![]()
Post
#11
|
|
![]() Grupa: Zarejestrowani Postów: 165 Pomógł: 6 Dołączył: 17.06.2005 Ostrzeżenie: (0%) ![]() ![]() |
Przyda Ci sie punkt 8, czyli usun z bazy wszystkie IP osób które nie odswiezyly strony od X czasu, chyba ze chcesz zbierac takie dane.
Poza tym warto te wszsytkie operacje zrobic jako oddzielna funkcje/procedure w SQL. Ten post edytował Diablos 12.09.2011, 13:50:28 |
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 4 298 Pomógł: 447 Dołączył: 16.11.2006 Ostrzeżenie: (0%) ![]() ![]() |
Cytat ps. ma to pewną wadę (przekłamanie) - mianowicie wchodząc na stronę automatycznie mój adres jest dodawany do bazy (czyli jestem online), natomiast po zalogowaniu jako admin pokazuje mi dwa adresy online - adres z przed zalogowania i drugi taki sam po zalogowaniu. To po co wykonujesz operacje dodawania do bazy dwa razy? A jak chcesz coś bardziej dokładnego zainteresuj się websocets w html5. Wtedy będziesz mieć listę IP "na żywo". http://html5demos.com/web-socket Ten post edytował !*! 12.09.2011, 14:04:44 -------------------- Nie udzielam pomocy poprzez PW i nie mam GG.
Niektóre języki programowania, na przykład C# są znane z niezwykłej przenośności (kompatybilność ze wszystkimi wersjami Visty jest wiele warta). |
|
|
![]()
Post
#13
|
|
![]() Grupa: Zarejestrowani Postów: 270 Pomógł: 0 Dołączył: 21.05.2008 Ostrzeżenie: (0%) ![]() ![]() |
Przyda Ci sie punkt 8, czyli usun z bazy wszystkie IP osób które nie odswiezyly strony od X czasu, chyba ze chcesz zbierac takie dane. Poza tym warto te wszsytkie operacje zrobic jako oddzielna funkcje/procedure w SQL. jasne masz, rację ... zapomniałem to po prostu dopisać, tyle że u mnie jest to pomiędzy punktem 6 i 7 :-) natomiast co do funkcji to oczywiści jest to wszystko zapisane jako jedna funkcja, odpalana na początku skryptu. To po co wykonujesz operacje dodawania do bazy dwa razy? A jak chcesz coś bardziej dokładnego zainteresuj się websocets w html5. Wtedy będziesz mieć listę IP "na żywo". http://html5demos.com/web-socket nie wykonuję operacji podwójnego dodawania do bazy. funkcja jest uruchamiana na początku skryptu, czyli: wchodząc na stronę moje ip jest automatycznie dodane do bazy, natomiast drugi raz zostaję dodany po zalogowaniu (ip i nazwa usera). oczywiście można to zrobić w ten sposób, ze jeżeli są dwa takie same adresy ip to jeden zostaje automatycznie usunięty, tylko wtedy też nie mam pewności że akurat nie wejdzie w tym samym momencie na stronę ktoś o takim samym ip (np. sieci osiedlowe - adres wspólny). |
|
|
![]()
Post
#14
|
|
Grupa: Zarejestrowani Postów: 4 298 Pomógł: 447 Dołączył: 16.11.2006 Ostrzeżenie: (0%) ![]() ![]() |
Czyli jednak dodajesz 2 razy. Zrób to w ten sposób:
Wchodzisz na stronę > zapisujesz IP, UA, czas rozpoczęcia sesji do bazy > logujesz się i tyle. Zmieniasz tylko status z 0 na 1, gdy zalogowany. Ten post edytował !*! 12.09.2011, 18:49:52 -------------------- Nie udzielam pomocy poprzez PW i nie mam GG.
Niektóre języki programowania, na przykład C# są znane z niezwykłej przenośności (kompatybilność ze wszystkimi wersjami Visty jest wiele warta). |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 19.07.2025 - 06:46 |