PDA

Zobacz pełną wersję : Przydatne skrypty na nasze strony (ja wrzucam skrypt informujący o odwiedzinach)



Aeon88
23-08-2011, 13:00
Witam,

Napewno jest tu wielu guru programistycznych i osób używających bardziej rozbudowanych rozwiązań ale pozostali nie używają niczego bo nie wiedzą jak lub nie mają na to czasu.

Napisałem dla siebie mały skrypt który odczytuje informacje o wejściach na moją stronę www czyli datę i godzinę, adres IP odwiedzającego, i co dla mnie najważniejsze - adres strony www z której internauta wszedł na moją stronę dzięki czemu mając reklamy w kilku serwisach www wiem z którego częściej a z którego rzadziej wchodzą pary młode. Skrypt wysyła te informacje na maila automatycznie co x wejść na stronę (ja ustawiłem co 5 wejść, wy możecie inaczej). Jest to o tyle dobre że nie wymaga żadnej rejestracji w żadnym portalu, dodaje sie tylko skrypt na stronie swojej i od tej pory sprawdzając pocztę widzicie maile z informacją skąd wchodzono na Waszą stronę i ile razy.

Oto kod źródłowy tego skryptu w PHP:


<!-- początek skryptu statystyk -->

<?php

// SKRYPT NAPISANY PRZEZ ADRIANA KRASKA
// POTRZEBUJESZ GO PRZEBUDOWAĆ? SKONTAKTUJ SIĘ: KONTAKT[AT]ADRIANKRASKA.PL

// odczytywanie informacji o odwiedzającym i pobieranie jego IP

$link = $_SERVER[HTTP_REFERER];
$ip = $_SERVER[REMOTE_ADDR];
$data = date("d-m-Y");
$czas = date("H:i");

// jeśli ktoś wpisał adres waszej strony ręcznie do przeglądarki to wartość link będzie pusta
// wartość 'dane' to informacja która zostanie dodana do pliku a potem wysłana mailem, zawiera ona czas wejścia, IP oraz link do strony z której bylo wejście na Waszą stronkę

if($link=='')
{
$link = "&nbsp;&nbsp;-- wpisano adres recznie --&nbsp;&nbsp;";
$dane = "<font face=\"Verdana\" size=\"2\"><b>Data:</b> ".$data." ".$czas." | <b>IP:</b> ".$ip." | <b>Wszedl z:</b> ".$link."<br><br>";
}

// jeśli ktoś wszedł na Waszą stronę klikając w jakiś odnośnik na innej stronie wtedy wartość link będzie zawierała adres strony na której ten odnośnik się znajduje
// wartość 'dane' to informacja która zostanie dodana do pliku a potem wysłana mailem, zawiera ona czas wejścia, IP oraz link do strony z której bylo wejście na Waszą stronkę

else
{
$dane = "<font face=\"Verdana\" size=\"2\"><b>Data:</b> ".$data." ".$czas." | <b>IP:</b> ".$ip." | <b>Wszedl z:</b> <a href=\"".$link."\">".$link."</a><br><br>";
}

// tu otwiera sie plik do którego zapisujemy uzyskane dane

$file=fopen("s_backlinks.txt", "a");
flock($file, 2);
fwrite($file, stripslashes($dane));
flock($file, 3);
fclose($file);

// a tu odczytujemy wartość licznika wejść na stronę

$file=fopen("s_counter.txt", "r");
flock($file, 1);
$counter=fgets($file, 100);
flock($file, 3);
fclose($file);

// i zwiększamy go o 1 bo dodaliśmy przed chwilą nowe dane do pliku

$counter++;

// teraz jeśli np chcemy co 5 wejść otrzymywać maila z informacjami skąd ludzie wchodzą wpisujemy w warunku "if" liczbę 4
// poniżej jest warunek "if" czyli jeśli było więcej niż 4 wejścia wysyłamy maila

if($counter > '4')
{
// odczytujemy informacje o ostatnich wejściach z pliku

$plik = "s_backlinks.txt";
$otwarty_plik = fopen($plik, "r");
$links = fread($otwarty_plik, filesize($plik));
fclose($otwarty_plik);

// wysylamy maila na podany niżej adres zawierającego informacje o wejściach na naszą stronę, tu wpisz swoje dane

$doMail = "[email protected]";
$tematMail = ":: jankowalski.pl - spis odwiedzajacych ::";
$wiadomoscMail = $links;
$naglowkiMail = 'MIME-Version: 1.0' . "\r\n";
$naglowkiMail .= 'Content-type: text/html; charset=utf-8' . "\r\n";
$naglowkiMail .= "<font face=\"Verdana\">Statystyki odwiedzających jankowalski.pl:</font><br>";
mail($doMail,$tematMail,$wiadomoscMail,$naglowkiMa il);

// po wysyłaniu maila licznik wejść się resetuje i zapisuje, jak znowu będzie 5 wejść mail wyśle się ponownie z kolejnymi danymi

$counter = '0';
$file=fopen("s_counter.txt", "w");
flock($file, 2);
fwrite($file, $counter);
flock($file, 3);
fclose($file);

// w chwili zresetowania licznika odczytujemy datę i czas i zapisujemy do pliku z informacjami o wejściach, tak żeby wiedzieć od której godziny dokładnie są liczone nowe wejścia na stronę

$data = date("d-m-Y");
$czas = date("H:i");

$links = "<font face=\"Verdana\" size=\"2\"><i>Linki zapisywane od ".$data." ".$czas."</i></font><br><br>";
$file=fopen("s_backlinks.txt", "w");
flock($file, 2);
fwrite($file, stripslashes($links));
flock($file, 3);
fclose($file);
}

// jeśli licznik wejść wynosi 4 lub mniej jego wartość jest tylko aktualizowana, mail nie zostaje wyslany (wysyła się po 5)

else
{
$file=fopen("s_counter.txt", "w");
flock($file, 2);
fwrite($file, $counter);
flock($file, 3);
fclose($file);
}


?>

<!-- koniec skryptu statystyk, poniżej umieść resztę kodu html strony -->

Skrypt umieszczamy zaraz po otwartym znaczniku <body> w pliku głównym strony czyli index.php. Jeśli plikiem głównym strony jest plik index.html to zmieniamy jego rozszerzenie na .php.

Na serwerze obok pliku index.php musimy umieścić dodatkowo dwa pliki tekstowe żeby nasz skrypt działał właściwie:

1. plik s_backlinks.txt - pusty, kodowanie UTF-8 (otwórz notatnik, wciśnij PLIK - Zapisz jako..., w polu nazwa s_backlinks.txt a w polu kodowanie wybieramy UTF-8
2. plik s_counter.txt - treść pliku to cyfra 0, kodowanie UTF-8

Zamieszczam tutaj takie pliki jak by ktoś nadal nie wiedział jak je zrobić: www.adriankraska.pl/nikoniarze/info_odwiedzin/stats.zip

Jeśli ktoś potrzebuje jakoś rozbudować ten skrypt służę odpłatną pomocą, na co oczywiście wystawię rachunek.
To co umieściłem powyżej udostępniam za darmo, fajnie by było gdybyście tylko zostawiali informację o autorze w komentarzu na początku kodu :)

Zachęcam do udostepniania w tym wątku podobnych własnych wypocin, napewno wiele osób napisało jakieś własne skrypty przydatne na stronach www, którymi mogliby sie podzielić :)

Aeon88
23-08-2011, 13:14
przykładowy mail który otrzymuje się na skrzynkę wygląda tak:


https://forum.nikoniarze.pl/imgimported/2011/08/przyklad-1.jpg
źródło (http://www.adriankraska.pl/nikoniarze/info_odwiedzin/przyklad.jpg)

ttp
23-08-2011, 13:58
Jakby dobrze poszukać to w logach accessowych serwera wszystko można znaleźć, więc jak dla mnie
to sztuka dla sztuki ;)
Google Analytics dobrze skonfigurowany też dałby radę ;)

No i walnij tego Phapca classowo ;) jak już tworzysz podwaliny pod przyszłą sprzedaż

Pozdrawiam

yOyO-
23-08-2011, 14:35
Napisałem dla siebie mały skrypt który odczytuje informacje o wejściach na moją stronę www czyli datę i godzinę, adres IP odwiedzającego, i co dla mnie najważniejsze - adres strony www z której internauta wszedł na moją stronę dzięki czemu mając reklamy w kilku serwisach www wiem z którego częściej a z którego rzadziej wchodzą pary młode.

Z kodu wynika, że do pliku logowane jest każde wejście? A co jeśli wejdę na Twoją stronę i ją odświeżę 20 razy? Albo nawiedzą Cię roboty indeksujące? A już strach pomyśleć, jakby ktoś uruchomił jakiś automat do 'odwiedzania' Twojej strony z częstotliwością np. 100 odwiedzin na sekundę ;)

ttp
23-08-2011, 14:55
yOyO- masz rację z tego co widzę skrypt tego nie obejmuję.
Ale pamiętaj, że to jest wersja DEMO. W pełnej wersji masz 1 log raw z 1 ip-ka na 24h ;)

yOyO-
23-08-2011, 14:57
Niby tak, ale uważam, że udostępniając to w takiej wersji, ktoś może sobie zrobić krzywdę... ;)

Oczywiście nie neguję udostępnienia tego skryptu. Jest przydatny, a przede wszystkim, swój i wiesz jak działa :)

Aeon88
23-08-2011, 20:14
oj, widze że zaśmiecam forum...

tak, skrypt działa za każdym razem więc jak odświeżysz stronę 20 razy to 20 razy będzie widać Twoje wejście w mailu. wydawało mi się jednak że masz co robić w ciągu dnia i nie przesiadujesz (ani ty ani inni) na stronach www odświeżając je co chwila, chętnie też dowiem się jaki jest sens robienie automatu który otwiera jakąś stronę i odświeża ją te 100 razy na sekundę - może mi przybliżysz cel takiego działania? co do robotów, widzę kiedy indexują mi stronę, ale nie jest to tak jak się wam wydaje tysiące wejść w ciągu dnia tylko kilka-kilkanaście i to nie codziennie tylko raz na jakiś czas więc tu też wątpie żeby ktoś sobie krzywdę robił wkładając ten skrypt na swoją stronę.

Ale rozumiem że chcieliście troche pośmiać się z czegoś prostszego niż sami byście stworzyli i odrazu zakładacie najczarniejsze scenariusze które jak sama nazwa wskazuje raczej się nie sprawdzają. To nie jest podwalina pod przyszłą sprzedaż, to jest banalny kod, sprzedać mógłbym coś bardziej rozbudowanego i zrobionego konkretnie pod danego klienta, więc nie nazywałbym tego tutaj wersją DEMO czegoś większego...

do logów accesowych nie każdy użytkownik serwera ma dostęp, praktycznie tylko administrator, a nie każdy fotograf jest administratorem serwera na którym trzyma stronę. Nie twierdziłem również że google analitycs czy cokolwiek innego "nie da rady", wsadziłem ten skrypt bo jest banalny i jak dla mnie przydatny bo wysyla mi na maila info kto kiedy i z jakiej strony wchodzi do mnie na stronkę, nie muszę się bawić w logowanie do jakichś mega rozbudowanych systemów które mi pokażą jaki ktoś miał system windows itp bo to mi do szczęścia nie jest potrzebne. Nie wsadziłem kodu pod ocenę, stwierdziłem że skoro mi się przydaje i jestem z niego zadowolony to się nim podzielę.

Jeśli komuś z Was się nie podoba i/lub uważa że zostałby przez ten skrypt skrzywdzony to proszę go nie używać, sprawa jasna, tak jak pisalem, nie wstawiłem go pod ocene ani dla szyderstwa, i nie chcę aby ktokolwiek w taki sposób komentował mój kod. Oczywistym jest i ameryki nie odkryliście że można zrobić coś lepszego z uwzględnieniem paru dodatkowych czarnych scenariuszy itp, nic nie stoi na przeszkodzie żebyście coś takiego napisali i wrzucili, wątek jest otwarty ;)

Władca Pixeli
24-08-2011, 06:49
co do robotów, widzę kiedy indexują mi stronę, ale nie jest to tak jak się wam wydaje tysiące wejść w ciągu dnia tylko kilka-kilkanaście i to nie codziennie tylko raz na jakiś czas
Poczekaj jak się pojawi Baiduspider czy Yandex :mrgreen:
Yandex udało mi się całkowicie wyeliminować. Natomiast Baiduspider jest cholernie odporny na wszelkie blokady.

Aeon88
24-08-2011, 10:07
mam stronę całkowicie we flashu, jedyny kod php jaki jest na stronie to licznik odwiedzin i ten skrypt z pierwszego posta, może nie będę miał takiego nawału odwiedzin przez tego bota, a jak już się pojawi to bede musiał jakoś sobie z nim poradzić.

Budziko
01-09-2011, 21:13
Dzięki kolego Aeon88 za napisanie i udostępnienie. Nie każdy chce się logować i zakładać statystyki które później walą reklamami na stronie.
Ci co krytykują niech zmodyfikują aby był lepszy skoro widzą luki w tym skrypcie.