Skocz do zawartości

Data ostatniej wizyty Google


wolf

Rekomendowane odpowiedzi

  • Odpowiedzi 34
  • Dodano
  • Ostatniej odpowiedzi

Jednak miałeś rację trzeba zamknąć cudzysłów. Po wielu próbach i małych zmianach skrypt zapisuje odwiedziny do pliku. Jest tylko mały problem. Nie wiem co zrobić aby każdy nowy wpis był przenoszony do nowej lini Na razie wszystko zapisuje w jednej i robi się to mało czytelne. Na razie jestem na początku nauki PHP i liczę na podpowiedź.


<?

$robot=array("firefox", "analyzer", "arena.pl", "arachnofilia", "aspseek", "bot", "check", "crawl", "google", "infoseek", "inktomi", "netoskop", "NetSprint", "openfind", "roamer", "robot", "rover", "scooter", "search", "siphon",  "siphon", "slurp", "spider", "sweep", "szukaj", "walker", "WebStripper", "wisenutbot", "gulliver", "validator", "yandex", "ask jeeves", "moget@", "teomaagent", "infoNavirobot", "PPhpDig", "gigabaz", "Webclipping.com", "RRC", "netmechanic",);

for($i=0; $i < count($robot); $i++)

{

 if(eregi($robot[$i], $_SERVER['HTTP_USER_AGENT']))

 {

  $content=date("r") . " | Wyszukiwarka: " . $robot[$i] . "  (" . $HTTP_USER_AGENT . ") | Adres referowany: " . $HTTP_REFERER . "| IP: " .$_SERVER['REMOTE_ADDR']."nr";

   $file="logi.txt";

   $openlogs=fopen("$file", "a");

   flock($openlogs, 2);

   fwrite($openlogs, $content);

   flock($openlogs, 3);

   fclose($openlogs);

   break;

 }

}

?>

Odnośnik do komentarza
Udostępnij na innych stronach

Nowe linie: Windowsy uzywaja CRLF jako znaku nowej linii (nie LF). Musisz zmienic zapis, i zamiast nr dac rn.

Poza tym, dlaczego otwierasz 30 razy ten sam plik?!

Zrob otwarcie pliku przed petla 'for', a zamknij za petla.

A dzialac bedzie tak: plik sie otwiera, dalej nastepuje iteracja tablicy (przechodzenie przez kolejne jej elementy) i zapis do pliku, a na koniec pliczek sie zamyka. Tylko nie zapomnij sprawdzic podczas iteracji czy posiadasz uchwyt do pliku.

Na nastepnej lekcji 'umiejetne blokowanie plikow' :D

Odnośnik do komentarza
Udostępnij na innych stronach

Ok dzieki, teraz w skrócie wygląda to tak i dział tak jak powinno. A co z tym blokowaniem? Coś żle?


<?

$robot=array("firefox", ,);

$file="logi.txt";

$openlogs=fopen("$file", "a");

for($i=0; $i < count($robot); $i++)

{

 if(eregi($robot[$i], $_SERVER['HTTP_USER_AGENT']))

 {

  $content=date("r") . " | Wyszukiwarka: " . $robot[$i] . "  (" . $HTTP_USER_AGENT . ") | Adres referowany: " . $HTTP_REFERER . "| IP: " .$_SERVER['REMOTE_ADDR']."rn";

   flock($openlogs, 2);

   fwrite($openlogs, $content);

   flock($openlogs, 3);

   fclose($openlogs);

   break;

 }

}

?>

Odnośnik do komentarza
Udostępnij na innych stronach

Lepiej, ale wciaz niedoskonale :D PHP samo w sobie jest ochydne, bo przepuszcza mnostwo bledow / niedopatrzen programisty.

O co chodzi? Teraz zamykasz N razy plik ;)

Lekko poprawiony kod z komentarzami (pisany z reki, nie sprawdzam czy dziala )


<?

$cnt = count($robot); # raz obliczamy ilosc elementow w tablicy, niepotrzebnie robiles to za kazda kolejna iteracja

for($i=0; $i < $cnt; $i++)

{

 if(eregi($robot[$i], $_SERVER['HTTP_USER_AGENT']))

 {

  $content=date("r") . " | Wyszukiwarka: " . $robot[$i] . "  (" . $HTTP_USER_AGENT . ") | Adres referowany: " . $HTTP_REFERER . "| IP: " .$_SERVER['REMOTE_ADDR']."rn";

   if($openlogs && flock($openlogs,LOCK_EX)) { # sprawdzamy czy mamy uchwyt do pliku i jesli mamy to zakladamy blokade

       fwrite($openlogs, $content);

       flock($openlogs, LOCK_UN); #po wszystkim blokade zdejmujemy

   } else {

       die('nie udalo siem'); #konczymy dzialanie jesli plik nie zostal otwarty lub jesli nie mozna bylo zalozyc blokady

   }

   break;

 }

}

fclose($openlogs); # zamykamy plik po zakonczeniu iteracji tablicy

?> 

Odnośnik do komentarza
Udostępnij na innych stronach

Dzięki. Wszystko działa. Chyba sobie muszę kupić jakąś książke do nauki PHP. I w ten sposób ostatnia wizyta robota będzie dla mnie widoczna nawet bez dostępu do logów.

Ostatecznie wygląda to tak


<?

$robot=array("firefox", "analyzer", "arena.pl", "arachnofilia", "aspseek", "check", "crawl", "googlebot", "google", "bot", "gooru", "infoseek", "inktomi", "lycos", "msnbot", "netoskop", "NetSprint", "openfind", "onet", "roamer", "robot", "rover", "robozilla", "scooter", "search", "siphon",  "siphon", "slurp", "spider", "sweep", "szukaj", "szukacz", "walker", "WebStripper", "webspider", "wisenutbot", "gulliver", "validator", "yandex", "ask jeeves", "moget@", "teomaagent", "infoNavirobot", "PPhpDig", "gigabaz", "Webclipping.com", "RRC", "netmechanic", "yahoo! slurp", "yandex",);

$file="logi.txt";

$openlogs=fopen("$file", "a");

$cnt = count($robot); # raz obliczamy ilosc elementow w tablicy, niepotrzebnie robiles to za kazda kolejna iteracja

for($i=0; $i < $cnt; $i++)

{

 if(eregi($robot[$i], $_SERVER['HTTP_USER_AGENT']))

 {

  $content=date("r") . " | Wyszukiwarka: " . $robot[$i] . "  (" . $_SERVER['HTTP_USER_AGENT'] . ") | IP: " .$_SERVER['REMOTE_ADDR']."rn";

   if($openlogs && flock($openlogs,LOCK_EX)) { # sprawdzamy czy mamy uchwyt do pliku i jesli mamy to zakladamy blokade

       fwrite($openlogs, $content);

       flock($openlogs, LOCK_UN); #po wszystkim blokade zdejmujemy

   } else {

       die('nie udalo siem'); #konczymy dzialanie jesli plik nie zostal otwarty lub jesli nie mozna bylo zalozyc blokady

   }

   break;

 }

}

fclose($openlogs); # zamykamy plik po zakonczeniu iteracji tablicy

?>

firefox dopisałem po to aby sprawdzić czy skrypt działa. Do listy można jeszcze podopisywać inne roboty.

A logi.txt oglądam sobie z poziomu przeglądarki i wygląda to tak:

Odnośnik do komentarza
Udostępnij na innych stronach

  • 4 tygodnie później...

Oj mylisz pojęcia. Przeczytaj skrypt. Plik logi.txt jest otwierany lub gdy go nie ma jest tworzony na twoim koncie na serwerze. Nie musi się nazywać logi, możesz go nazwać dowolnie ale musi mieć atrybut do zapisu

A aby przeczytać sobie ten plik wpisz w przeglądarkę ścieżkę do tego pliku np.

https: // twój adres/logi.txt

Oczywiście wcześniej wejdź dla sprawdzenia firefoxem na stronę ze skryptem aby w pliku zapisała sie wizyta firefoxa

Gdy wszystko będzie działać usuń ze skryptu nazwę firefox.

Odnośnik do komentarza
Udostępnij na innych stronach

aha, czyli ten skrypt to jest metoda również dla mnie, bo nie mam dostępu do logów:(

pliku logi.txt chyba nie mam także musze go stworzyć w tym folderze gdzie jest mój index?

a jeżeli chciałbym zrobić sobie takie statystyki wizyt dla kilku podstron, to poprostu musze stworzyć pliki o innych nazach i skrypty z tymi nazami powklejać na te podstrony?

pozdrawiam

Ka-lolek

Odnośnik do komentarza
Udostępnij na innych stronach

  • 4 tygodnie później...
A jeśli na stronie nie ma się dostępu do php?

Można to jakoś obejść?

No własnie, mam stronke która jest sobie index.html

co mogę zrobić w takiej sytuacji by móc śledzić wizyty robotów??

Jeśli to było już gdzieś na forum- proszę o linka- bo nie znalazłam ;)

Pozdr.

Odnośnik do komentarza
Udostępnij na innych stronach

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.

×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Umieściliśmy na Twoim urządzeniu pliki cookie, aby pomóc Ci usprawnić przeglądanie strony. Możesz dostosować ustawienia plików cookie, w przeciwnym wypadku zakładamy, że wyrażasz na to zgodę. Warunki użytkowania Polityka prywatności