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
|
|
|
|
Post
#21
|
|
|
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 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. :] no to przeczytaj jeszcze raz to (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) |
|
|
|
Post
#22
|
|
|
Grupa: Zarejestrowani Postów: 910 Pomógł: 44 Dołączył: 20.02.2008 Skąd: Łódź Ostrzeżenie: (20%)
|
@piniek ja już z tego nic nie kumam. Dajcie mi skrypt bo takie gadanie co lepsze to przerost formy nad treścia (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif)
|
|
|
|
Post
#23
|
|
|
Grupa: Przyjaciele php.pl Postów: 463 Pomógł: 49 Dołączył: 27.12.2007 Skąd: Warszawa Ostrzeżenie: (0%)
|
tabela przechowujaca id usera i date ostaniej akcji
Kod user_id | timestamp w zapytaniu gdzie pobierasz uzytkownikow zalogwanych dajesz WHERE czas ostatniej akcji nie jest wiekszy niz 15 minut i koniec P.S : porwonywanie czasów w zapytanich było gdzies ostatnio na forum (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) poszukaj sobie |
|
|
|
Post
#24
|
|
|
Grupa: Zarejestrowani Postów: 910 Pomógł: 44 Dołączył: 20.02.2008 Skąd: Łódź Ostrzeżenie: (20%)
|
dobra zrobiłem tak:
tabela login | czas | ip funkcja
i w indexie zamieściłem
I działa (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif) Chciałbym dodać do tabeli komorke `strona` gdzie by pokazywalo na jakiej stronie siedzi user. Moja IDEA do wyswietlana calego paska URLjest taka:
Ale to niezbyt działa bo pokazuje wartosc 0. Czy jest jakas funkcja która pokazuje URL, a moze da sie to w jakis inny sposob zrobic?? Juz znalazlem:D <?php $strona = $_SERVER['HTTP_REFERER']; ?> Ten post edytował Mlodycompany 19.04.2008, 20:52:40 |
|
|
|
Post
#25
|
|
|
Grupa: Zarejestrowani Postów: 2 291 Pomógł: 156 Dołączył: 23.09.2007 Skąd: ITALY-MILAN Ostrzeżenie: (10%)
|
NIe zadane http_referef bo to pokazuje strone z jakiej sie weszlo czyli poprzednia (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) ogolnie dodajesz do bazy nasteona kolumna strona varchar(60)
POtem zapisujesz do jakies zmiennej strone na ktprej aktualnie sie jest i zapisujesz do bazy razem tak jak to robi ten moj skrypt tylko dodaj te pole potem przy pobieraniu masz ogolnie regulke ktora pokzauje wszystkich user'ow online w servisie i potem robisz drugioe zapytanie dla danej podstrony
Rozumiesz mniej wiecej?? |
|
|
|
Post
#26
|
|
|
Grupa: Zarejestrowani Postów: 910 Pomógł: 44 Dołączył: 20.02.2008 Skąd: Łódź Ostrzeżenie: (20%)
|
kumam kumam, ale czy nie ma funckji ktora pokazuje obecny adres url?(IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif)
|
|
|
|
Post
#27
|
|
|
Grupa: Zarejestrowani Postów: 2 291 Pomógł: 156 Dołączył: 23.09.2007 Skąd: ITALY-MILAN Ostrzeżenie: (10%)
|
Ja o takiej nie slyszalem i watpie ze taka jest (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
|
|
|
|
Post
#28
|
|
|
Grupa: Zarejestrowani Postów: 910 Pomógł: 44 Dołączył: 20.02.2008 Skąd: Łódź Ostrzeżenie: (20%)
|
poradzilem sobie juz
|
|
|
|
Post
#29
|
|
|
Grupa: Zarejestrowani Postów: 654 Pomógł: 17 Dołączył: 19.03.2006 Skąd: z kosmosu ;) Ostrzeżenie: (0%)
|
Drobna uwaga na przyszłość.
Znak "+" to operacja matematyczna dodawania, a nie łączenia stringów, od tego jest znak ".".
Pozdrawiam, Babcia@Stefa Ten post edytował Babcia@Stefa 20.04.2008, 20:16:27 |
|
|
|
Post
#30
|
|
|
Grupa: Zarejestrowani Postów: 493 Pomógł: 32 Dołączył: 14.04.2008 Skąd: Lenkowski.net Ostrzeżenie: (0%)
|
kumam kumam, ale czy nie ma funckji ktora pokazuje obecny adres url? (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) echo $_SERVER['REQUEST_URI']; pozdrawiam. |
|
|
|
![]() ![]() |
|
Aktualny czas: 26.12.2025 - 12:35 |