Salve a tutti!
Vorrei escludere i motori di ricerca dal mio sistema di report degli accessi al sito in php.
Visto che i principali motori a causarmi "falsi accessi" sono 3 (MSN, Google, Yahoo), ho pensato di fare un controllo tramite il loro $HTTP_USER_AGENT .
Ad un array "fisso" nello script (cioè non si autogenera) ho assegnato i tre output:
$spider_user_agent[1] = "Mozilla/5.0 (compatible; Yahoo! Slurp; http://help.yahoo.com/help/us/ysearch/slurp) ";
$spider_user_agent[2] = "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html) ";
$spider_user_agent[3] = "msnbot/1.0 (+http://search.msn.com/msnbot.htm) ";
[Scusate se il forum vi dà i link dei motori...]
Creo una variabile contatore "fissa"
$spider_search_engine_n=3;
Passo alla variabile $sys l'User Agent dell'esecutore dello script:
$sys = $HTTP_USER_AGENT;
Poi la condizione:
for ($i = 1; $i <= $spider_search_engine_n; $i++) {
if ($spider_user_agent[$i]==$sys){
$spider_search_engine_ctr=1;
}
Ed infine:
if ($spider_search_engine_ctr!=1){non è un bot: fai quello che devi fare}else{è un bot: ignora l'accesso}
Questo script non funziona. Perchè? Mi sorge un dubbio: non è che forse non si possono fare "controlli" (==) su questo tipo di variabili?
Vi prego, illuminatemi!
Grazie a tutti!
Tom