Newsgroup: it.comp.www.php
Titolo: contatore click

Ciao a tutti.
Devo implementare un contatore di click in una pagina chiamata
prova.php
Ho però un problema. vengono anche contate le visite generate dai motori 
di ricerca durante l'indicizzazione del sito (l'ip del click corrisponde 
a quelli di google/msg). C'è qualche modo per ovviare a questo problema?

 quelli di google/msg). C'è qualche modo per ovviare a questo problema?
Filtrarli.
Se sai qual'è l'IP del motore di ricerca, lo ignori quando fai il conteggio.
Ciao
Marco 

 Se sai qual'è l'IP del motore di ricerca, lo ignori quando fai il conteggio.
Oppure con lo user_agent e regex.
Ciao

 Se sai qual'è l'IP del motore di ricerca, lo ignori quando fai il conteggio.
impossibile.
solo google ha 100 ip.

> Oppure con lo user_agent e regex.
Meglio filtrare i motori di ricerca o meglio contare solo i browser?
in pratica, sono minori gli user_agent dei motori di ricerca o dei browser?

 solo google ha 100 ip.
E come lo sai?
Voglio dire, se hai un sistema per riconoscere i motori di ricerca, puoi 
usarlo per filtrare.
Ciao
Marco 

napo ha scritto:

Appunto che non lo so.
In giro su internet ci sono decine e decine di indirizzi ip di google.
Fitlrare per ip è impensabile.
figuriamoci gli ip di msn, altavista, hotbot,libero,excite,yahoo.


non mi intendo molto di indicizzazione dei motori di ricerca,ma non
potresti gestire il conteggio con del codice javascript?mi spiego. visto
che l'indicizzazione probabilmente non esegue codice javascript potresti
attivare un flag javascript al caricamento della pagina e
successivamente richiamare (sempre tramite javascript) una pagina che ti
aumentare il contatore solo se il flag è attivato.

 figuriamoci gli ip di msn, altavista, hotbot,libero,excite,yahoo.
[OT]
Se ne hai la possibilita' puoi usare il modulo mod_rewrite di apache
Filtrando per USER_AGENT le chiamate a prova.php
http://httpd.apache.org/docs/1.3/mod/mod_rewrite.html
http://httpd.apache.org/docs/2.0/misc/rewriteguide.html
Oppure, piu' semplicemente, puoi utilizzare il file robots.txt
http://www.robotstxt.org/wc/norobots.html
[/OT]
--
~omar

 [/OT]

 aumentare il contatore solo se il flag è attivato.
No perchè la pagina DEVE essere seguita ed indicizzata dai motori di 
ricerca, ma non DEVE essere conteggiato il click.


infatti,se gli script che gestiscono l'indicizzazione non eseguono il
javascript il flag non viene inizializzato e quindi non viene
incrementato il contatore.cosa che invece succede navigando normalmente
la pagina da browser.

 la pagina da browser.
Dici un link tipo
<a href="#" onClick="contatore('nome_pagina.html')">testo</a>????
Ok, ma la pagina non viene indicizzata dai motori di ricerca.
A meno che:
<a href="pagina.html"
onClick="window.location='conta.php?pag=pagina.htm'; ">
in questo modo, i motori di ricerca non fanno onClick quindi seguono il
link normale, mentre invece l'utente fa onClick e carica la pagina
tramite il contatore conta.php
un casino però implementarlo.........


beh,+o-.
come evento non userei "onclick" ma userei un evento indipendente da
quello che fa l'utente,tipo "onLoad" della pagina.
poi per quanto riguarda la chiamata della pagina ci sono vari modi,ora
me ne vengono in mente 2:
1. usare un http_request,ajax per intenderci.
2. inserire nella pagina un iframe 1x1 non visibile all'utente e far
caricare in questo iframe la pagina che incrementa il contatore.
usare direttamente window.location non è molto bello xkè fa cambiare la
pagina mentre la cosa dovrebbe essere trasparente all'utente.

 pagina mentre la cosa dovrebbe essere trasparente all'utente.
se vai sul sito libero, vedrai che è pieno di link tipo
clicksrv.libero.it/.....
..
non credo che vengano contati pure i motori di ricerca.

 non credo che vengano contati pure i motori di ricerca.
su libero "
clicksrv.libero.it
" viene richiamato al click su un oggetto
presente sulla pagina. mi sembra che non sia la cosa che serve a te.

 presente sulla pagina. mi sembra che non sia la cosa che serve a te.
Come no?!
Io devo contare quanti click fa una persona su un dato link.
Dalla home per esempio, ci sono 5 link e devo sapere in quanti cliccano 
su questi 5 link prima di mandarli a destinazione.

"Alessandro" ha scritto:

Ma non basta mettere (o includere) nella tua pagina prova.php uno script che
faccia una verifica del browser utilizzato?
$browser = $_SERVER['HTTP_USER_AGENT'];
e verificare se
$browser="Yahoo! Slurp"
oppure
$browser="msnbot"
....
e quindi se il visitatore è uno di questi motori di ricerca, non incrementi
la visita.
Nel mio sito ho dei contatori che vedo solo io e riesco a filtrare in questo
modo.
Ovviamente quando nasce un nuovo curiosone bisogna aggiungerlo a manina.
Io ad esempio vedo i nuovi perché per ogni immagine vista sul mio sito, nel
database conta visite memorizzo anche il tipo di browser utilizzato.
Ciao
Marco
http://marmox.altervista.org
 

 $browser="msnbot"
Allora è piu facile contare solo se il browser è "Internet Explorer", 
"Netscape" ....
Sono sicuramente meno i browser dei motori di ricerca.
Però cercavo qualcosa di piu automatico.

 $browser="msnbot"
Ho dimenticato una piccolezza, ma si capiva lo stesso.
L'analisi della stringa $browser è da fare con  stristr()
Saluti
Marco
http://marmox.altervista.org
 

 Sono sicuramente meno i browser dei motori di ricerca.
beh, non necessariamente; comunque, pigliando i browser più conosciuti, 
statisticamente dovresti avere una risposta più che attendibile. Un paio 
d'anni fa avevo fatto uno script che includeva un filtro per i 'bot', 
ottenendo buoni risultati.