Geschrieben von des-sys am 02.12.2004, 17:57

Hi Leutz!

:: VORWORT
In diesem Tutorial beschreibe ich, wie man eine einfache Statistik inklusive Counter fuer seine Homepage gestaltet.

:: Funktionsumfang
Counter und Statistik ueber Browser und Betriebssystem der Webseitenbesucher.

:: Vorkenntnisse & Benoetigtes
Zunaechst sind mindestens Grundkenntnisse in PHP vorrausgesetzt.
Ansonsten braucht ihr noch eine MySQL-Datenbank bei Lima-City. Falls ihr noch keine habt, koennt ich euch ueber den Menuepunkt Auktionen leicht eine ersteigern.
Weiterhin benoetigt ihr noch ein Programm, in dem ihr euren PHP-Code schreibt. Der Notepad (Start -> Programme -> Zubehoer) reicht zwar vollkommen aus, besonders Neulingen empfehle ich allerdings einen Editor mit Syntax-Highlighting, da es mehr Uebersicht bietet.
Ich selbst nutze WeaverSlave (Link s.u. bei "Links").

:: Code
[php]
$dbServer = "mysql.lima-city.de";
$dbUser = "Benutzername fuer die Datenbank";
$dbPass = "Passwort fuer die Datenbank";
$dbDatabase = "Name der Datenbank";
mysql_connect($dbServer,$dbUser,$dbPass) or die ("Keine Verbindung zum Datenbank-Server " . $dbServer . "!");
mysql_select_db($dbDatabase) or die ("Keine Verbindung zur Datenbank " . $dbDatabase . "!");

function getOS() {
if(eregi("Win", $_SERVER['HTTP_USER_AGENT'])) {
$OS = "Windows";
} elseif(eregi("Mac", $_SERVER['HTTP_USER_AGENT']) or (eregi("PPC", $_SERVER['HTTP_USER_AGENT']))) {
$OS = "Macintosh";
} elseif(eregi("Linux", $_SERVER['HTTP_USER_AGENT'])) {
$OS = "Linux";
} elseif(eregi("FreeBSD", $_SERVER['HTTP_USER_AGENT'])) {
$OS = "FreeBSD";
} elseif((eregi("SunOS", $_SERVER['HTTP_USER_AGENT']))) {
$OS = "SunOS";
} elseif((eregi("BeOS", $_SERVER['HTTP_USER_AGENT']))) {
$OS = "BeOS";
} elseif((eregi("OS/2", $_SERVER['HTTP_USER_AGENT']))) {
$OS = "OS2";
} else {
$OS = "Andere";
}

return $OS;
}

function getBrowser() {
if(eregi("MSIE", $_SERVER['HTTP_USER_AGENT'])) {
$browser = "MSIE";
} elseif((eregi("Mozilla", $_SERVER['HTTP_USER_AGENT'])) or (eregi("Netscape", $_SERVER['HTTP_USER_AGENT']))) {
$browser = "Netscape";
} elseif(eregi("Opera", $_SERVER['HTTP_USER_AGENT'])) {
$browser = "Opera";
} elseif(eregi("Firefox", $_SERVER['HTTP_USER_AGENT'])) {
$browser = "Firefox";
} elseif(eregi("Konqueror", $_SERVER['HTTP_USER_AGENT'])) {
$browser = "Konqueror";
} elseif(
(eregi("bot", $_SERVER['HTTP_USER_AGENT'])) OR
(eregi("Google", $_SERVER['HTTP_USER_AGENT'])) OR
(eregi("Slurp", $_SERVER['HTTP_USER_AGENT'])) OR
(eregi("Scooter", $_SERVER['HTTP_USER_AGENT'])) OR
(eregi("Spider", $_SERVER['HTTP_USER_AGENT'])) OR
(eregi("Infoseek", $_SERVER['HTTP_USER_AGENT'])) OR
(eregi("MSN", $_SERVER['HTTP_USER_AGENT']))
) {
$browser = "Suchmaschine";
} else {
$browser = "Andere";
}

return $browser;
}

function setStatistics($OS,$browser,$hour) {
$statistics = "update statistics set
hits=hits+1,
os_".strtolower($OS)."=os_".strtolower($OS)."+1,
browser_".strtolower($browser)."=browser_".strtolower($browser)."+1";

mysql_query($statistics) or die ("Mysql-Fehler in Update: " . mysql_error();
}

function getStatistics() {
$sql = "select * from statistics_general";
$result = mysql_query($sql);
$tmplData = mysql_fetch_assoc($result);

foreach($tmplData as $key=>$val) {
echo $key . ": " . $val . "<br />";
}
}

$userOS = getOS();
$userBrowser = getBrowser();
setStatistics();
getStatistics();
[/php]

:: Schlusswort
Die Ausgabe sollte man ueber ein ausgelagertes Layout oder per HTML im echo noch schoen gestalten und schon wirkt die Statistik noch represaentativer. Weiterhin kann man die Statistik natuerlich auch ganz leicht um einiges erweitern (z.B. Datum, Uhrzeit etc.).

:: Links
Programme
WeaverSlave :: http://www.weaverslave.de
FileZilla (FTP-Client) :: http://www.filezilla.de

Sprachreferenz
PHP
PHP.net :: http://de.php.net/manual/de/

MySQL
MySQL (off.) :: http://dev.mysql.com/doc/mysql/de/index.html

Als denne, viel Spass beim coden und tuefteln. :biggrin:
des-sys

Bewertung Anzahl
6
25,0 %
1 Bewertungen
5
50,0 %
2 Bewertungen
1
25,0 %
1 Bewertungen