![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 910 Pomógł: 44 Dołączył: 20.02.2008 Skąd: Łódź Ostrzeżenie: (20%) ![]() ![]() |
Witam. Chcę opracowac system, który by pokazywał użytkowników online. Obmyśliłem sobie tak, że w tabeli `users` mam pole `online`. Podstawowa wartośc tego pola to 0. I teraz skrypt:
Mam nadzieje, że kumacie ten skrypcik, ale dla tych co nie kminią go wytłumacze. Skrypt logujący. Po zalogowaniu zmienia wartośc w polu `online` z 0 na 1. Jeżeli user kliknie na wyloguj to zmienia z 1 na 0. I teraz mam problem. Jak user zamknie przeglądarke to ta wartośc sie nie zmienia czyli jest nadal online. Jak zrobic ze po zamknieciu strony wartośc sie zmienia?? |
|
|
![]()
Post
#2
|
|
Grupa: Przyjaciele php.pl Postów: 463 Pomógł: 49 Dołączył: 27.12.2007 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Nie da się ;] Mozesz zrobic tak ze dodasz jeszcze jedno pole w tabeli user's z datą ostatniej akcji i co jakis okres czasu bedzie odpala skrypt cronem ktory bedzie zmieniaj wartosc online/ofline w zaleznosci czy ostatnia akcja zostala wykonana w przeciagu ostatnich przypuscmy 15minut.
Pozdrawiam |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 910 Pomógł: 44 Dołączył: 20.02.2008 Skąd: Łódź Ostrzeżenie: (20%) ![]() ![]() |
A może automatyczne kończenie sesji po np 15 min i wtedy zmiana wartości??
|
|
|
![]()
Post
#4
|
|
Grupa: Przyjaciele php.pl Postów: 463 Pomógł: 49 Dołączył: 27.12.2007 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
a jak wtedy odpalisz skrypt zmieniający wartość ;]
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 910 Pomógł: 44 Dołączył: 20.02.2008 Skąd: Łódź Ostrzeżenie: (20%) ![]() ![]() |
|
|
|
![]()
Post
#6
|
|
Grupa: Przyjaciele php.pl Postów: 463 Pomógł: 49 Dołączył: 27.12.2007 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
to nic nie da bo jak ktos wyłączy przegladarkę to nie wykona sie ten skrypt ;]
|
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 910 Pomógł: 44 Dołączył: 20.02.2008 Skąd: Łódź Ostrzeżenie: (20%) ![]() ![]() |
kurcze szkoda. A może ktoś ma skrypcik pokazujący userów online??
|
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 1 033 Pomógł: 125 Dołączył: 17.09.2005 Skąd: Żywiec Ostrzeżenie: (0%) ![]() ![]() |
Zamiast pola `online` dodaj sobie pole `ostatnia_akcja`. Przy każdym wyświetleniu strony przez użytkownika aktualizuj datę w tej kolumnie.
Do tego zapytanie pobierze wiersze z tabeli `users` w których `ostatnia_akcja` była max 15 minut temu i masz gotowy skrypt. |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 910 Pomógł: 44 Dołączył: 20.02.2008 Skąd: Łódź Ostrzeżenie: (20%) ![]() ![]() |
no tak ale na kazdej stronie bym musial dac skrypt ktory by zmienial dane, ale pomysl jest dobry
|
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 2 291 Pomógł: 156 Dołączył: 23.09.2007 Skąd: ITALY-MILAN Ostrzeżenie: (10%) ![]() ![]() |
Moj skrypt z cms zrob z nim co chcesz (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) P.S pozmieiaj tabele/kolumny i pasy do mysql i w twoim przypadku tak musisz wywolac
|
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 910 Pomógł: 44 Dołączył: 20.02.2008 Skąd: Łódź Ostrzeżenie: (20%) ![]() ![]() |
Thx. Wyciągne z tego skryptu wnioski i napisze własny skrypt na własne potrzeby (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif)
Skopiowałem ten skrypt. Ciapke zmodyfikowałem, ale jak sie zastanowiłem to mnie przeraziła jedna rzecz, amianowicie przyjmijmy, że user zamknoł przeglądarke i skrypt ktory usunie dane jest nie aktywny czyli ten user bedzie nadal aktywny. Czy dobrze myśle?? |
|
|
![]()
Post
#12
|
|
Grupa: Przyjaciele php.pl Postów: 7 494 Pomógł: 302 Dołączył: 31.03.2004 Ostrzeżenie: (0%) ![]() ![]() |
Skopiowałem ten skrypt. Ciapke zmodyfikowałem, ale jak sie zastanowiłem to mnie przeraziła jedna rzecz, amianowicie przyjmijmy, że user zamknoł przeglądarke i skrypt ktory usunie dane jest nie aktywny czyli ten user bedzie nadal aktywny. Czy dobrze myśle?? Dorze myślisz.Dlatego wszystkie takie skrypty są opatrzone błędem. Jak dużym to zależy od Ciebie. Zwróć uwagę, że często widzi się napisy jak na tym forum: 82 użytkowników aktywnych przez ostatnie 15 minut Zwyczajowo użytkownika uznaje się za aktywnego przez pewien czas po jego ostatniej akcji. Jak długi to czas? To zależy od Ciebie i natury serwisu. 5min., 10min., 15min., ... |
|
|
![]()
Post
#13
|
|
Grupa: Zarejestrowani Postów: 910 Pomógł: 44 Dołączył: 20.02.2008 Skąd: Łódź Ostrzeżenie: (20%) ![]() ![]() |
a wpadlem jeszcze na pomysl automatycznego konczenia sesji np po 15min, czy user jest aktywny czy nie. Wtedy by było wiadomo kto jest online i mniej wiecej ile jest online
|
|
|
![]()
Post
#14
|
|
Grupa: Zarejestrowani Postów: 2 291 Pomógł: 156 Dołączył: 23.09.2007 Skąd: ITALY-MILAN Ostrzeżenie: (10%) ![]() ![]() |
Jak widzisz ja z bazy usuwam co 5min user'a jak zamknie przegladarke to juz inny problem
|
|
|
![]()
Post
#15
|
|
Grupa: Zarejestrowani Postów: 910 Pomógł: 44 Dołączył: 20.02.2008 Skąd: Łódź Ostrzeżenie: (20%) ![]() ![]() |
to jak sa zbudowane profesionalne skrypty. przeciez jest jakies wyjscie na kasowanie danych po wyjsciu ze strony
|
|
|
![]()
Post
#16
|
|
Grupa: Przyjaciele php.pl Postów: 463 Pomógł: 49 Dołączył: 27.12.2007 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
no to cronem odpalaj skrypt co 15minut, ktory bedzie zmienial wartosc pola na ofline u wszystkich u ktorych ostatnia akcja zostala wykonana pozniej niz 15minut temu
|
|
|
![]()
Post
#17
|
|
Grupa: Zarejestrowani Postów: 1 873 Pomógł: 152 Dołączył: 9.04.2006 Skąd: Berlin Ostrzeżenie: (0%) ![]() ![]() |
Ale po co męczyć crona co 15min? (IMG:http://forum.php.pl/style_emoticons/default/snitch.gif) Niech w skrypcie pobiera useró o ostatniej aktywnosci mniejszej niz 15min a crona co np. 24h do wyczyszczenia caklej tabeli. Będzie wydajniej. :]
|
|
|
![]()
Post
#18
|
|
Grupa: Zarejestrowani Postów: 910 Pomógł: 44 Dołączył: 20.02.2008 Skąd: Łódź Ostrzeżenie: (20%) ![]() ![]() |
yy Panowie może troche jaśniej, a najlepiej skrypty dac (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif)
|
|
|
![]()
Post
#19
|
|
Grupa: Zarejestrowani Postów: 1 873 Pomógł: 152 Dołączył: 9.04.2006 Skąd: Berlin Ostrzeżenie: (0%) ![]() ![]() |
~marcio już Ci kod podał ładny. I tam gdzie masz logowanie usera dajesz (po zalogowaniu) <?php online($nickname); ?>
Oczywiście zmienna $nickname zastąp taką jaką masz z nickiem usera (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) |
|
|
![]()
Post
#20
|
|
Grupa: Zarejestrowani Postów: 910 Pomógł: 44 Dołączył: 20.02.2008 Skąd: Łódź Ostrzeżenie: (20%) ![]() ![]() |
@bim2 ale zauważ to kwestie, że jeżeli user zamknie strone to nadal bedzie online
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 14.09.2025 - 21:19 |