Foros del Web » Programando para Internet » PHP »

Identificar robots para contador de visitas

Estas en el tema de Identificar robots para contador de visitas en el foro de PHP en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 03/11/2005, 09:26
 
Fecha de Ingreso: mayo-2004
Mensajes: 393
Antigüedad: 13 años, 7 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.
  #2 (permalink)  
Antiguo 03/11/2005, 09:57
 
Fecha de Ingreso: noviembre-2005
Mensajes: 6
Antigüedad: 12 años, 1 mes
Puntos: 0
Ands y Ors

Yo cambiaria Ors por Ands y si funciona pues está bien ;)
  #3 (permalink)  
Antiguo 03/11/2005, 10:39
 
Fecha de Ingreso: mayo-2004
Mensajes: 393
Antigüedad: 13 años, 7 meses
Puntos: 0
Gracias por tu interés.

He pensado tu idea y creo que si pongo ands, me dejará pasar a todos los robots.

Lo que ha de hacer el script es ver si es uno u otro, no si es uno y otro. Esta condición, no se cumpliría nunca y, por tanto, los dejaría pasar.

Gracias.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 10:11.