Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Własne statystyki - kilka wątpliwości
Forum PHP.pl > Forum > Przedszkole
statek
Cześć!

Irytują mnie już różnego rodzaju statystyki, które są darmowe ale wyświetlają reklamy. I chciałbym napisać własny skrypt. O ile sprawdzenie jakiej kto używa przeglądarki, jakiego systemu nie jest trudne, to sprawdzenie jakich użył słów aby znaleźć moją stronę w googlach już mnie przerasta. Jak to zrobić? Kolejna trudność to unikalność odwiedzin, mogę założyć, że jak dwa wejścia na stronę są odległe w czasie o powiedzmy jedną godzinę, to są unikalne. Ale to tylko oszacowanie, jak lepiej to zrobić? I sprawa najtrudniejsza (powiązana z poprzednią) jak umieszczę skrypt zliczający i identyfikujący użytkowników na każdej stronie mojej witryny, to nie będę miał statystyk unikalnych odwiedzin. A jeśli umieszczę skrypt tylko na stronie głównej to pominę tych, co weszli na podstronę witryny nie poprzez główną stronę ale poprzez bezpośredni link. Jak to obejść? Bardzo proszę o jakieś sugestie.

Pozdrawiam.
lewy87r
skrypt umieszczasz na wszystkich podstronach ;]

jest odpowiednia zmienna z adresem z jakiego url-a czlowiek do ciebie wszedł... (nie pamietam nazwy ale cos referer chyba do sprawdzenia to jest)

i ta zmienna zalatwia ci wszystkie problemy
bo jak daje ci urla-a z twojej strony to znaczy ze to nie unikalna / ewentualnie ciasteczko wysylaj 30sto monutowe ;]

edit: http://forum.php.pl/lofiversion/index.php/t76844.html
kipero
Frazę, jaką wyszukał użytkownik można odczytać z $_SERVER['HTTP_REFERER']. Najprościej wyrażeniami regularnymi. Jeśli chodzi o unikalnych użytkowników to zapisuj do bazy np. adres IP oraz datę(lub czas) odwiedzin. Później zapytaniem do bazy wyciągniesz sobie informację ile osób z różnym IP(SELECT DISTINCT...) odwiedziło stronę w jakimś odstępie czasu.
viking
Google analytics nie wyświetla reklam a raczej skoro masz wątpliwości nic lepszego nie napiszesz.
erix
A widziałeś Piwika? snitch.gif
statek
Fakt, jest $_SERVER['HTTP_REFERER']. Pozostaje tylko problem unikalności wizyt. Umieszczam skrypt na każdej stronie i co dalej? Jak weryfikować czy to unikalne odwiedziny? Powiedzmy, że IP jest unikalny i między innymi go odczytuje, po czym zapisuje do jakiegoś pliku statystyk albo bazy. Ale nadal pozostaje pytanie jak odróżnić unikalność wizyt z tego samego IP?

Pozdrawiam.

PS
Mam jeszcze pytanie ogólne o serwery, strony i php. Jeśli mam stronę strona.com/index.php i jednocześnie 100 użytkowników chce ją odwiedzić. To co dzieje się z dostępem do pliku? Wydaje mi się, że plik może być w tym samym czasie otwarty i czytany tylko przez jedna osobę. Co wtedy się dzieje?

I jeszcze jedno: czy da się wczytać tylko jedna wybraną linijkę z pliku? Funkcja file czyta wszystkie wiersze. A potrzebuje wczytać kilka konkretnych linijek z bardzo długiego pliku.
Spawnm
Tu znajdziesz odpowiedź co do linii z pliku:
http://pl.php.net/manual/en/ref.filesystem.php

ew. google.pl , w sieci i na forum jest trochę na ten temat.
statek
Spawnm ja nie widzę tam żadnej funkcji czytającej wybrany wiersz z pliku. Mógłbyś powiedzieć o którą Ci chodzi?

A tak odnośnie tych statystyki, to czy jest inny (lepszy sposób) niż czasowa weryfikacja unikalności? Jak zabrać się za pisanie statystyk pokazujących popularność wszystkich podstron? Jak wtedy rozróżnić unikalność? Proszę o jakiekolwiek wskazówki, linki etc.

Pozdrawiam.
erix
Cytat
I jeszcze jedno: czy da się wczytać tylko jedna wybraną linijkę z pliku?

W pierwszym lepszym kursie PHP jest...

Cytat
Fakt, jest $_SERVER['HTTP_REFERER']. Pozostaje tylko problem unikalności wizyt. Umieszczam skrypt na każdej stronie i co dalej? Jak weryfikować czy to unikalne odwiedziny? Powiedzmy, że IP jest unikalny i między innymi go odczytuje, po czym zapisuje do jakiegoś pliku statystyk albo bazy. Ale nadal pozostaje pytanie jak odróżnić unikalność wizyt z tego samego IP?

Ściągnij sobie phpMyVisites i zobacz, jak tam jest to sprawdzane.

Cytat
A tak odnośnie tych statystyki, to czy jest inny (lepszy sposób) niż czasowa weryfikacja unikalności?

Ciastko ustawiane na odpowiednio długi czas.
statek
erix

Cytat
I jeszcze jedno: czy da się wczytać tylko jedna wybraną linijkę z pliku?

W pierwszym lepszym kursie PHP jest...


Chyba się nie rozumiemy. Mogę zrobić $a=file('sciezka') po czym odwołać się do a[5] i wczytać piąty wiersz, ale mi chodzi o to jak ominąć wczytywanie całego pliku do tablicy. Coś jak file ale z podaniem numeru linijki. Ani w pierwszym lepszym, ani w drugim nic lepszego ine znalazłem. A w manuału chyba nie ma takiej funkcji. Mógłbyś mi powiedzieć jak to zrobić?

Cytat
Fakt, jest $_SERVER['HTTP_REFERER']. Pozostaje tylko problem unikalności wizyt. Umieszczam skrypt na każdej stronie i co dalej? Jak weryfikować czy to unikalne odwiedziny? Powiedzmy, że IP jest unikalny i między innymi go odczytuje, po czym zapisuje do jakiegoś pliku statystyk albo bazy. Ale nadal pozostaje pytanie jak odróżnić unikalność wizyt z tego samego IP?

Ściągnij sobie phpMyVisites i zobacz, jak tam jest to sprawdzane.


Dzięki, ale nie bardzo rozumiem, czemu jeśli wiesz jak to jest zrobione, to nie napiszesz o tym jednego zdania? Wtedy Twoja pomoc byłaby dużo efektywniejsza smile.gif

Cytat
A tak odnośnie tych statystyki, to czy jest inny (lepszy sposób) niż czasowa weryfikacja unikalności?

Ciastko ustawiane na odpowiednio długi czas.


Szczególnie przy wyłączonych ciastkach. Chyba lepiej sesją, albo po prostu sprawdzać czas ostatniej wizyty w bazie. Jak radzisz?
erix
Cytat
Chyba się nie rozumiemy. Mogę zrobić $a=file('sciezka') po czym odwołać się do a[5] i wczytać piąty wiersz, ale mi chodzi o to jak ominąć wczytywanie całego pliku do tablicy. Coś jak file ale z podaniem numeru linijki. Ani w pierwszym lepszym, ani w drugim nic lepszego ine znalazłem. A w manuału chyba nie ma takiej funkcji. Mógłbyś mi powiedzieć jak to zrobić?

Owszem, się rozumiemy. Gdybyś przejrzał, jakie są dostępne funkcje plikowe w PHP, to byś wiedział, że można czytać plik linia po linii. Gdybyś odrobinę pogłówkował, zrobiłbyś pętlę z licznikiem, która czyta po linijce.

Cytat
Dzięki, ale nie bardzo rozumiem, czemu jeśli wiesz jak to jest zrobione, to nie napiszesz o tym jednego zdania? Wtedy Twoja pomoc byłaby dużo efektywniejsza

Ale Ty byś dostał gotowca. Ja wiem, jaka pomoc będzie efektywniejsza, o to się nie bój. Rób swoją pracę domową, ruszaj palcami, a przede wszystkim głową, gdyż myślenie nie boli.

Cytat
Szczególnie przy wyłączonych ciastkach. Chyba lepiej sesją, albo po prostu sprawdzać czas ostatniej wizyty w bazie. Jak radzisz?

To powodzenia przy sprawdzaniu tej wizyty. Tylko ciekawe, jak zweryfikujesz sesję, gdy delikwent zamknie przeglądarkę. tongue.gif
statek
erix przejrzałem chyba 5razy te funkcje plikowe i nie mogę znaleźć takiej która oferuje wczytanie wybranej linijki bez wczytywania wszystkich linijek z pliku. Mógłbyś powiedzieć co to za funkcja? Mam duże pliki wczytywanie ich całych do tablicy jest bardzo czasochłonne, potrzebuje wczytać TYLKO jedną linijkę, marzeniem byłaby funkcja file() z opcją podania numeru tej linijki: file $path, 5), bez czytania reszty.

Odnośnie ruszania głową, to myślę że ruszam nią już dość długo i nawet mam w tym wprawę, jednak jak widzę wypowiedź w rodzaju: wiem, ale nie powiem, albo powiem fragment, to troszkę mnie to śmieszy i irytuje. Jakoś nie bardzo mam chęć nie analizowanie czyjegoś, raczej długiego, kodu po to aby dowiedzieć się kilku rzeczy, których sens można zapisać w dwóch zdaniach. A prac domowych nie robię już od lat, szkoły skończyłem dość dawno smile.gif

Masz rację sesje nie są dobre, zapomniałem o wyłączeniu przeglądarki. Ale ciastka też mają wady, ktoś może je wyłączyć, albo czyścić po każdym zamknięciu przeglądarki i co wtedy? Wydaje mi się, że zliczanie wizy i ich identyfikacja jako unikalne albo wtórne MUSI zachodzi w całości po stronie serwera, bez zależności od ustawień przeglądarki użytkownika. Wiesz jak to zrobić? A jeśli wiesz to, czy podzielisz się tą wiedzą?

Pozdrawiam.


PS
Jeśli ktoś inny również chciałby mi pomóc, to proszę się nie krępować:)
Spawnm
Człowieku , użyj google jeśli nie potrafisz sam dojść która funkcja , jest o tym pełno w sieci, trochę własnej inicjatywy !
Zamykam.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.