![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 293 Pomógł: 4 Dołączył: 28.01.2005 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
Stanąłem nad tym aby wykonać licznik unikalnych odwiedzin + licznik osób online.. Za osoby online nie mam pojęcia jak się wziąć... zero pomysłu. Na unikalne wizyty mam 2 pomysły. 1) baza adresów IP które odwiedzały stronę, facet wchodzi, patrzymy czy jego ip jest w bazie, jeżeli tak, nie przesuwamy licznika, jeżeli nie było przesówamy o jeden. 2) pomysł chyba bardziej wydajny, ale bardziej zawodny - do sesji wstawiam następujące dane: Sprawdzamy czy w sesji jest odwiedzałem = 1; jeżeli tak to nie przesówamy licznika, jeżeli nie, to przesówamy licznik i dodajemy wartość odwiedzalem = 1. Po ponownym odświerzeniu nie zliczy nam faceta.. ( pomysł pierwszy, chyba będzie pobierać zbyt wiele zasobów serwera, więc raczej skupił bym się na drugim). Ale ostatecznie interesuje mnie wasze zdanie ![]() A co sądzicie o wypisaniu osób będących aktualnie online ? Jak to można wykonać ? Pozdrawiam.... -------------------- |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 562 Pomógł: 15 Dołączył: 8.08.2003 Skąd: Denmark/Odense Ostrzeżenie: (0%) ![]() ![]() |
Co do unikalnych odwiedzin, to patrz raczej po IP. Sesje umierają dość szybko (możesz oczywiście ustawić cookie, żeby nie sprawdzać w bazie jak już ktoś jest zarejestrowany).
Co do osób aktualnie online, to dość proste. Tworzysz tabele z miejscem na session_id" title="Zobacz w manualu PHP" target="_manual i timestamp. Przy każdym wywołaniu strony usuwasz wszystkie wpisy starsze niż określony czas, i wpisujesz aktualne session_id i aktualny timestamp. Aby wiedzieć ile osób jest na stronie robisz select distinct i po sprawie. Ten post edytował bregovic 12.11.2008, 11:11:55 -------------------- Prank - for the fun. Mac - for the simplicity. Deviantart - for the kick.
Life is ours, We live it our way -- Metallica |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 293 Pomógł: 4 Dołączył: 28.01.2005 Ostrzeżenie: (0%) ![]() ![]() |
Co to jest timestamp ?
-------------------- |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 562 Pomógł: 15 Dołączył: 8.08.2003 Skąd: Denmark/Odense Ostrzeżenie: (0%) ![]() ![]() |
timestamp to liczba sekund od epoki uniksowej, vide time" title="Zobacz w manualu PHP" target="_manual. Ale możesz użyć jakiegokolwiek formatu czasu, suit your self
![]() -------------------- Prank - for the fun. Mac - for the simplicity. Deviantart - for the kick.
Life is ours, We live it our way -- Metallica |
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 293 Pomógł: 4 Dołączył: 28.01.2005 Ostrzeżenie: (0%) ![]() ![]() |
Dobra napisałem takie coś - oczywiście zdaje się działać poprawnie w 100 %
![]() Jakieś sugestie jak to przyśpieszyć ? Wydaje mi się że wykonywanie tej procedury sprawdzania czy dalej są zalogowani, można by wrzucić do Crona ( aby przyśpieszyć wczytywanie strony). Tak więc czekam na informację co można ulepszyć ![]()
Ten post edytował seba22 12.11.2008, 15:52:10 -------------------- |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 171 Pomógł: 32 Dołączył: 5.08.2008 Skąd: Lublin Ostrzeżenie: (0%) ![]() ![]() |
Tutaj licznik on-line (mój post) - nie mam żadnych z Nim problemów zawsze działa.
http://forum.php.pl/index.php?showtopic=100833&hl=online Jeśli chodzi o unikatowe wejścia nie tylko zarejestrowanych użytkowników - to robisz to po IP. Pozdrawiam -------------------- ---------------------------
"Jeżeli trzeci dzień z rzędu nie chce Ci się pracować tzn że dziś jest ŚRODA ! Algorytmy , Programowanie , Tworzenie WWW - SPRAWDŹ |
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 562 Pomógł: 15 Dołączył: 8.08.2003 Skąd: Denmark/Odense Ostrzeżenie: (0%) ![]() ![]() |
Ok, zamiast tego:
Zrób tak:
Poza tym robisz zdecydowanie za dużo zapytań. Możesz to wszystko wykonać używając 3 zapytań (lub 2 jeśli użyjesz cron'a). Zapytania w kolejności wykonania:
Ustawiasz default w user_id na 0. Każdy rekord z user_id=0 to nie zalogowany user, reszta to zalogowani. Jeśli użyjesz cron'a, wrzuć do niego pierwsze zapytanie, bez session_id. Ten post edytował bregovic 12.11.2008, 16:38:56 -------------------- Prank - for the fun. Mac - for the simplicity. Deviantart - for the kick.
Life is ours, We live it our way -- Metallica |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 12.05.2025 - 04:43 |