sorry
hier mal der ganze code der bot-abfrage:
PHP-Code:
<?php
$_SESSION['bot'] = 0; // erst mal nicht bot
if (stristr(getEnv("HTTP_USER_AGENT"),'google') == TRUE)
{
$special_id = "googl".get_rand_num(10); // Gast-ID (10-stellig) erstellen
$_SESSION['bot'] = 1;
}
elseif (stristr(getEnv("HTTP_USER_AGENT"),'archiver') == TRUE)
{
$special_id = "archi".get_rand_num(10); // Gast-ID (10-stellig) erstellen
$_SESSION['bot'] = 1;
}
elseif (stristr(getEnv("HTTP_USER_AGENT"),'firefly') == TRUE)
{
$special_id = "fireb".get_rand_num(10); // Gast-ID (10-stellig) erstellen
$_SESSION['bot'] = 1;
}
elseif (stristr(getEnv("HTTP_USER_AGENT"),'msnbot') == TRUE)
{
$special_id = "msnbo".get_rand_num(10); // Gast-ID (10-stellig) erstellen
$_SESSION['bot'] = 1;
}
elseif (stristr(getEnv("HTTP_USER_AGENT"),'slurp') == TRUE)
{
$special_id = "slurp".get_rand_num(10); // Gast-ID (10-stellig) erstellen
$_SESSION['bot'] = 1;
}
else
{
$special_id = "guest".get_rand_num(10); // Gast-ID (10-stellig) erstellen
}
?>
wie ich das teste:
nach der
prüfung oben werden die special_id, ip-adresse, useragent und auch $_SESSION['bot'] durch tabs getrennt zu einem datensatz zusammengefasst und in eine datei geschrieben, die permanent aktualisiert wird. ausserdem bekommt der eintrag eine bestimmte lebensdauer mit (einstellbar in sekunden). zum speichern verwende ich 2 dateien. je nachdem, ob $_SESSION['bot'] 1 ist, eine datei für
bots ansonsten eine datei für
whoisonline.
zur kontrolle habe ich mir ein script geschrieben, dass mir die beiden dateien ausliest und den user_agent b.z.w die $_SESSION['bot'] und die entsprechnde ip zurückgibt.
alle ausser msnbot funktionieren fehlerfrei (vor allem google und yahoo/slurp sind regelmässig da) und werden als google und yahoo ausgegeben und auch in die richtige datei geschrieben.
ich hoffe, das war nun ausführlich genug. die scripte selbst sind recht umfangreich, ich will niemanden damit langweilen. mein problem ist, dass es eben bei 4 von 5 einträgen fehlerfrei klappt. auch nicht-bots, die die seite besuchen (das sind ca 100 am tag) werden fehlerfrei eingetragen und richtig zugeordnet.