Avatar billede rudi1234 Nybegynder
20. september 2005 - 07:27 Der er 10 kommentarer og
1 løsning

Ekskludere hits fra søgemaskine i min statistik

Jeg har lavet en simpel besøgstæller der undersøger IP og http-referer, men alle søgemaskiner bliver desværre talt med.

Er der nogen måde hvorpå jeg med php kan afgøre om et hit stammer fra en "rigtig" besøgende eller blot en søgemaskine?
Avatar billede Slettet bruger
20. september 2005 - 08:32 #1
Jeg tror ikke jeg ved hvor du vil hen med det?

Men hvorfor så ikke bruge:

<?php
if (din funktion til at hente hvor de kommer fra !== "www.google.com")
{
    skriv til databasen hvor de kommer fra.
}
?>

Så skriver den kun til databasen hvis besøget ikke kommer fra google, selvom jeg ikke kan se det smarte i det. :)
Avatar billede rudi1234 Nybegynder
20. september 2005 - 08:42 #2
Fordi det ikke alene er Google, men alle søgemaskiner jeg vil undgå.

Fx giver $_SERVER['HTTP_HOST'] navnet på hvem der refererer til min side, men måske findes der også noget lignende $_SERVER['TYPE'] som kunne fortælle hvilken slags besøgende man har på sin side... Det er _det_ jeg søger... :o)
Avatar billede snowball Novice
20. september 2005 - 09:24 #3
En måde at gøre det på er at du har en tabel i din database som indeholder en liste med UserAgent strengen fra alle den slags bots - en sådan liste kan findes på f.eks. http://www.psychedelix.com/agents.html

Når der så kommer et hit på din hjemmeside, så laver du blot et opslag i bot tabellen og hvis den pågældende UserAgent findes i databasen, så er det en bot der er på besøg :)
Avatar billede rudi1234 Nybegynder
20. september 2005 - 10:12 #4
Det var en løsning, men den er lidt kompliceret, synes jeg. Desuden skal jeg så løbende vedligeholde listen på hvert site som statistikken kører på.
Avatar billede coderdk Praktikant
20. september 2005 - 13:11 #5
Hvad med en whitelist:

$browsers = array( 'MSIE', 'Opera', 'Firefox', 'Lynx', 'Safari', 'Wget' );
$browsers = implode( '|', $browsers );
if ( preg_match( "!(" . $browsers . ")!i", $_SERVER['HTTP_USER_AGENT'] ) )
{
  // Tæl op!
}
Avatar billede coderdk Praktikant
20. september 2005 - 13:12 #6
Mht listen, kan du jo lave en textfil, som du kan bruge file_get_contents() på? Evt. lave lidt cache logik, altså f.eks. hente den én gang i døgnet osv
Avatar billede rudi1234 Nybegynder
20. september 2005 - 13:15 #7
Den med whitelist er jeg tændt på! :o)

'MSIE', 'Opera', 'Firefox', 'Lynx', 'Safari', 'Wget' dækker jo det meste. Er der evt. nogle der kan supplere med flere?
Avatar billede coderdk Praktikant
20. september 2005 - 13:28 #8
Jeg glemte Netscape :)
Avatar billede coderdk Praktikant
20. september 2005 - 13:29 #9
Konqueror
Galeon

Så tror jeg du er dækket godt ind ;)
Avatar billede rudi1234 Nybegynder
20. september 2005 - 21:26 #10
coderdk -> smid et svar, så får du points!
Avatar billede coderdk Praktikant
20. september 2005 - 21:27 #11
Okidoki :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester