Ver Mensaje Individual
  #1 (permalink)  
Antiguo 03/11/2005, 09:26
javifo
 
Fecha de Ingreso: mayo-2004
Mensajes: 393
Antigüedad: 19 años, 11 meses
Puntos: 0
Identificar robots para contador de visitas

Hola.
Con este script, pretendo controlar el número de visitas que recibe una página y que no vengan de los robots Google, MSN,Yahoo,Altavista. Pero no funciona.
Código PHP:
if (!eregi("googlebot"$_SERVER['HTTP_USER_AGENT']) or !eregi("MSN"$_SERVER['HTTP_USER_AGENT']) or !eregi("slurp"$_SERVER['HTTP_USER_AGENT']) or !eregi("scooter"$_SERVER['HTTP_USER_AGENT']))
{
$diadate("d/m/y-H-i-s");
$sSQL="UPDATE tabla Set clicks=clicks+1, accedido='$dia' WHERE idvariable='$idvariable'";
mysql_db_query("basedatos",$sSQL);

Imagino que el problema está en la construcción de esta línea:
Código PHP:
if (!eregi("googlebot"$_SERVER['HTTP_USER_AGENT']) or !eregi("MSN"$_SERVER['HTTP_USER_AGENT']) or !eregi("slurp"$_SERVER['HTTP_USER_AGENT']) or !eregi("scooter"$_SERVER['HTTP_USER_AGENT'])) 
El caso es que no da error, pero suma las visitas de estos robots. O sea, no funciona para lo que quiero.

En cambio,
Código PHP:
if (eregi("googlebot"$_SERVER['HTTP_USER_AGENT']) or eregi("MSN"$_SERVER['HTTP_USER_AGENT']) or eregi("slurp"$_SERVER['HTTP_USER_AGENT']) or eregi("scooter"$_SERVER['HTTP_USER_AGENT']))

    
mail($address"Aviso de visita de robot"
            
"UN ROBOT\n\nHa visitado esta pagina: " .
            
$_SERVER['REQUEST_URI']); 

...tiene similar construcción, y me manda un email cuando alguno de estos robots pasa por la página. Por lo menos lo hace con Google que es el que hasta ahora he podido comprobar.

¿Qué puede estar mal?

Otra cosa: ¿Hay forma de identificar a cualquier robot sin tener que poner su nombre?

Gracias a todos por vuestra ayuda.