Seite 1 von 1
Statistik - Informationen in die Datenbank schreiben?!
Verfasst: 20.07.2005 23:13
von mgutt
Ich wollte eine kleine Statistik bauen, in der die referer der Besucher in einer Liste angezeigt werden.
Dafür gibt es nun eine Tablelle namens "phpbb_logdatei". In der constants.php habe ich diese geaddet und als "XSTATS_TABLE" definiert.
dann wollte ich diesen code der page_header.php hinzufügen, aber er schreibt nichts in die tabelle:
Code: Alles auswählen
$xreferer = $_SERVER['HTTP_REFERER'];
$xbrowser = $_SERVER['HTTP_USER_AGENT'];
$xip = $_SERVER['REMOTE_ADDR'];
$xwebseite = $_SERVER['PHP_SELF'];
$sql = "INSERT INTO ".XSTATS_TABLE ." (referer, browser, ip, webseite) VALUES ('$xreferer', '$xbrowser', '$xip', '$xwebseite')";
wo ist der denkfehler?
Verfasst: 26.07.2005 13:07
von mgutt
*bump*
Verfasst: 27.07.2005 16:26
von mgutt
*bump*
Verfasst: 27.07.2005 16:28
von mristau2k5
hast auch ein
drin? bzw. die spezielle funktion aus phpBB, die ist in der mysql.php glaub ich drin
Verfasst: 28.07.2005 14:22
von mgutt
klar eigentlich logisch.
hatte ich aber irgendwie verpennt, weil ich die fehlermeldung nicht gemacht hatte.
durch die abarbeitung der fehlermeldung wird auch der datensatz erst geschrieben:
Code: Alles auswählen
$xreferer = $_SERVER['HTTP_REFERER'];
$xbrowser = $_SERVER['HTTP_USER_AGENT'];
$xip = $_SERVER['REMOTE_ADDR'];
$xwebseite = $_SERVER['PHP_SELF'];
$sql = "INSERT INTO ".XSTATS_TABLE ." (referer, browser, ip, webseite) VALUES ('$xreferer', '$xbrowser', '$xip', '$xwebseite')";
if ( !$db->sql_query($sql) )
{
message_die(GENERAL_ERROR, 'Could not update statistic information', '', __LINE__, __FILE__, $sql);
}
Verfasst: 28.07.2005 14:26
von kratzer54847
wurde XSTATS_TABLE in der constants.php definiert?
gib mal $sql per echo aus
Verfasst: 28.07.2005 14:59
von mgutt
ja habe ich (siehe auch meinen ersten Post

)
jetzt gehts aber auch.
ich habe nochmal ein bisschen verändert:
Code: Alles auswählen
$xreferer = $_SERVER['HTTP_REFERER'];
$xbrowser = $_SERVER['HTTP_USER_AGENT'];
$xip = $_SERVER['REMOTE_ADDR'];
$xwebseite = $_SERVER['PHP_SELF'];
if (!empty($xreferer) && !preg_match("/maxrev/i", $xreferer))
{
$sql = "INSERT INTO ".XSTATS_TABLE ." (referer, browser, ip, webseite) VALUES ('$xreferer', '$xbrowser', '$xip', '$xwebseite')";
if ( !$db->sql_query($sql) )
{
message_die(GENERAL_ERROR, 'Could not update statistic information', '', __LINE__, __FILE__, $sql);
}
}
den preg_match code wollte ich noch verfeinern mit der SERVER_NAME Geschichte, aber irgendwie funzt das nicht.
Ich hatte versucht mit
aber das geht leider nicht.
Für's erste siehts aber schon ganz gut aus:
http://www.maxrev.de/auswertung.php?s=0

Verfasst: 20.08.2005 13:33
von mgutt
Ich habe noch ein paar Modis vorgenommen, da mich die referer von der Suchmaschine nicht mehr interessiert haben, da von dort eigentlich immer Besucher kommen.
Code: Alles auswählen
//
// Statistik Mod Anfang
//
$xreferer = $_SERVER['HTTP_REFERER'];
$xwebseite = $_SERVER['PHP_SELF'];
if ( !empty($xreferer) && !preg_match("/(google|freenet|fireball|yahoo|freunde.koeln|aol|miragorobot|mail.lycos|search.msn|suche.web|superhonda.de|hondaclub-hamm|buethe|hondaclub-neckar|t-online|accord-forum|wwwhonda|tuning-guides|tuningguides|hondachat|honda-chat|jdm-universe.com|civic-forum.com|prelude-forum.com|hondaclub-hildesheim|maxrev|max-rev|hondatreffen.com|jacuta|celler-honda|motorrad-honda|hondaclub-hamm|nippon-tuning.de)/i", $xreferer) )
{
$sql = "SELECT id FROM ".XSTATS_TABLE ." WHERE referer='$xreferer'";
$query = mysql_query($sql);
$ds = mysql_fetch_object($query);
$id = $ds->id;
if (empty($id))
{
$sql = "INSERT INTO ".XSTATS_TABLE ." (referer, webseite, counter) VALUES ('$xreferer', '$xwebseite', counter+1)";
if ( !$db->sql_query($sql) )
{
message_die(GENERAL_ERROR, 'Could not update statistic information', '', __LINE__, __FILE__, $sql);
}
}
else
{
$sql = "UPDATE ".XSTATS_TABLE ." SET counter=counter+1 WHERE id='$id'";
if ( !$db->sql_query($sql) )
{
message_die(GENERAL_ERROR, 'Could not update statistic information', '', __LINE__, __FILE__, $sql);
}
}
}
//
// Statistik Mod Ende
//
Was im Moment nervt, ist das er im referer den eigenen Domainname nicht per:
oder
auszuschließen ist. ich muss alle domains von hand eintippen.