0) $id_page = mysql_result($pgs,0); // Если название данной страницы отсутствует в таблице pages // то проверяем сраницу по ее адресу. else { $query = "SELECT id_page FROM pages WHERE name='".$_SERVER['REQUEST_URI']."'"; $pgs = mysql_query($query); if ($pgs) // Выясним, первичный ключ (id_page) текущей страницы (по адресу страницы) if(mysql_num_rows($pgs)>0) { $id_page = mysql_result($pgs,0); $query = "UPDATE pages SET `title`='$titlepage' WHERE id_page=$id_page"; mysql_query($query); } // Если данная страница отсутствует в таблице pages // и не разу не учитывалась - добавляем данную страницу в таблицу. else { $query = "INSERT INTO pages VALUES (0, '".$_SERVER['REQUEST_URI']."','$titlepage', 0)"; mysql_query($query); // Выясняем первичный ключ только что добавленной // страницы $id_page = mysql_insert_id(); } } // Определяем строку USER_AGENT $useragent = $_SERVER['HTTP_USER_AGENT']; $browser = 'none'; // Выясняем браузер if(strpos($useragent, "MSIE") !== false) if(strpos($useragent, "Opera") == null) $browser = 'msie'; if(strpos($useragent, "Opera") !== false) $browser = 'opera'; if(strpos($useragent, "Netscape")!== false) $browser = 'netscape'; // Выясняем операционную систему $os = 'none'; if(strpos($useragent, "Win") !== false) $os = 'windows'; if(strpos($useragent, "Linux") !== false || strpos($useragent, "Lynx") !== false || strpos($useragent, "Unix") !== false) $os = 'unix'; if(strpos($useragent, "Macintosh")!== false || strpos($useragent, "PowerPC") !== false) $os = 'macintosh'; // Выясняем принадлежность к поисковым роботам if(substr($useragent, 0, 12) == "StackRambler") $os = 'robot_rambler'; if(substr($useragent, 0, 9) == "Googlebot") $os = 'robot_google'; if(substr($useragent, 0, 6) == "Yandex") $os = 'robot_yandex'; if(substr($useragent, 0, 5) == "Aport") $os = 'robot_aport'; if(substr($useragent, 0, 6) == "msnbot") $os = 'robot_msn'; $search = 'none'; // Выясняем принадлежность к поисковым системам if(strpos($reff,"yandex")) $search = 'yandex'; if(strpos($reff,"rambler")) $search = 'rambler'; if(strpos($reff,"google")) $search = 'google'; if(strpos($reff,"aport")) $search = 'aport'; if(strpos($reff,"mail") && strpos($reff,"search")) $search = 'mail'; if(strpos($reff,"msn") && strpos($reff,"results")) $search = 'msn'; if(strpos($reff,$_SERVER["SERVER_NAME"])) $search = 'own_site'; // Заносим всю собранную информацию в базу данных $query_main = "INSERT INTO ip VALUES ( 0, INET_ATON('$ip'), NOW(), $id_page, '$browser', '$os')"; @mysql_query($query_main); // Если имеется реферер, заносим информацию о нём в отдельную таблицу if(!empty($reff) && $search=="none") { $reff = str_replace("'","`",$reff); $query_reff = "INSERT INTO refferer VALUES ( 0, '$reff', now(), INET_ATON('$ip'), $id_page)"; @mysql_query($query_reff); } //вносим поисковый запрос в соответствующую таблицу if(!empty($reff) && $search!="none" && $search != "own_site") { switch($search) { case 'yandex': { eregi("text=([^&]*)", $reff."&", $query); if(strpos($reff,"yandpage")!=null) $quer=convert_cyr_string(urldecode($query[1]),"k","w"); else $quer=$query[1]; break; } case 'rambler': { eregi("words=([^&]*)", $reff."&", $query); $quer=$query[1]; break; } case 'mail': { eregi("q=([^&]*)", $reff."&", $query); $quer=$query[1]; break; } case 'google': { eregi("q=([^&]*)", $reff."&", $query); $tmpstr = utf8_win($query[1]); $quer=$tmpstr; break; } case 'msn': { eregi("q=([^&]*)", $reff."&", $query); $tmpstr = utf8_win($query[1]); $tmpstr; break; } case 'aport': { eregi("r=([^&]*)", $reff."&", $query); $quer=$query[1]; break; } }//конец для switch $symbols = array("\"", "'", "(", ")", "+", ",", "-"); $quer = str_replace($symbols, " ", $quer); $quer = trim($quer); $quer = preg_replace('|[\s]+|',' ',$quer); $sql="INSERT INTO searchquerys VALUES (0, '$quer', now(), INET_ATON('$ip'), $id_page, '$search')"; @mysql_query($sql); } } //Ловушка для роботов if ($os=='none') { $catch=mysql_query("SELECT * FROM useragent WHERE usragnt='".$HTTP_USER_AGENT."'"); if (mysql_num_rows($catch)==0) mysql_query("INSERT INTO useragent VALUES (0,'$ip','$HTTP_USER_AGENT');"); } ?>