User Log

moin leutz,

könnte mal zum thema userlog eure hilfe gebrauchen.
denn ich will mittels eines kleines php scriptes (welches ich dann in meinem main php-code inplementiere) mitloggen kann was sich die User auf meiner seite angeschaut haben.

[code]//abruf der Zeit + Datum mittels date() function
$time = date(“F jS Y, h:iA”);

//User Login Name ermitteln
$uname = ???

//ermitteln der ip und host adresse
$ip = getenv(“REMOTE_ADDR”);
$host = gethostbyaddr($ip);

//von welcher website kam der aufruf mittels $http_referer
$referer = $HTTP_REFERER;

//ermitteln des browser clienten
$browser = $HTTP_USER_AGENT;

//von welcher seite innerhalb meiner page kam der aufruf
$page = $_SERVER[‘REQUEST_URI’];

//anwenden der fopen() function
$fp = fopen(“log.log”, “a”);

//anwenden der fputs() function
fputs($fp, “
Time: $time
User: $uname
IP: $ip
Host: $host
Referer: $referer
Browser: $browser
Page: $page
”) ;

fclose($fp); [/code]
soweit funzt der code ja, nur ich möchte noch oben drein noch ermitteln welcher registriere user die site besucht hat. und wenn nicht registriert soll nur die ip-adresse stehen bleiben.

Die Endung der Datei ist völlig wurschd. :p

so habe den fehler gefunden.
Ich frage mich doch warum wir denn immer erst den schweren weg gehen müssen,
wo bei doch in den meisten fällen dein einfache weg auchder effektivste weg ist.
ich will es denn mal kurz machen und mal das fehlende fragment für euch andere mal noch posten die das gleich eventuell vorhaben.

//User Login Name ermitteln $uname="[".$userdata['user_name']."]";

axo, und damit die log.php die auch die log.log selber erstellen falls diese mal ausversehen oder auch bewußt gelöscht habt müßt ihr der log.php cmod 666 verpassen und im quell der php-datei nach dem a ein + setzen. siehe unten:

//anwenden der fopen() function $fp = fopen("log.log", "a+");

so, für mich ist dann heute mal hier schluss und werde meine füsse mal hoch legen. !coffee :wink:

Ich habe vor kurzem eine umfangreiche Log-Klasse geschrieben, zum loggen von Zugriffen, SQL-Querys, und allem möglichen anderen.

Dabei werden (auf Wunsch) auch die Session Daten mit geloggt. Gleichzeitig fungiert das ganze noch als Zugriffszähler, und für Browserstatistiken.
Speicherung in Datenbank, bzw. Datei als serialisiertes Array.

Mit den Auswertungsscripts bin ich nicht ganz fertig, aber die Aufzeichnungen laufen. wenn du oder andere interesse haben, schreibt mir eine PN :wink:

Moin leutz,

habe erst vor nen kleinen schönheits fehler in meiner doch so netten und hilfreichen Userlog gefunden.
Das nun folgende script sollte in die maincore.php / main.php oder in die index.php Datei, welche im Haupverzeichnis (BASEDIR) deiner seite zu finden ist, eingebunden werden.
Zuvor solltest du aber in deinem Hauptverzeichnis einen Ordner mit namen log erstellen.
"Hierbei ist die GROSS und klein Schreibung zubeachten, da Du ansonsten die Zeile wo Du dein LOG - Verzeichnis definieren tuhst neu anpassen müsstest.

[code]//bereitstellen von information aus einer *.php Datei
require_once “spitzel.php”;

//definieren wie mein Ordner heißt und wo er zu finden ist
define(“LOG”, BASEDIR.“log/”);

//anwenden der fputs() function
fputs($fp, “
Time: $time
User: $uname
OS: $os
Browser: $browser
IP: $ip
Host: $host
Referer: $referer
Page: $page
”) ;

fclose($fp);[/code]

hier die der code der spitzel.php

[code]<?php
// Auslesen der Browser
if (ereg( ‘MSIE’,$_SERVER[HTTP_USER_AGENT])) {
if (strstr($_SERVER[HTTP_USER_AGENT],‘MSIE 5.0’)) {
$browser = “Internet Explorer 5”;
} elseif (strstr($_SERVER[HTTP_USER_AGENT],‘MSIE 5.5’)) {
$browser = “Internet Explorer 5.5”;
} elseif (strstr($_SERVER[HTTP_USER_AGENT],‘MSIE 6.0’)) {
$browser = “Internet Explorer 6”;
} elseif (strstr($_SERVER[HTTP_USER_AGENT],‘MSIE 7.0’)) {
$browser = “Internet Explorer 7”;
} elseif (strstr($_SERVER[HTTP_USER_AGENT],‘MSIE 8.0’)) {
$browser = “Internet Explorer 8”;
} else {
$browser = “Internet Explorer”;
}
} elseif (ereg( ‘Opera’,$_SERVER[HTTP_USER_AGENT])) {
$browser = “Opera”;
} elseif (strstr($_SERVER[HTTP_USER_AGENT], “Firefox”)) {
$browser = “Firefox”;
} elseif (strstr($_SERVER[HTTP_USER_AGENT], “Safari”)) {
$browser = “Safari”;
} elseif (ereg(“Lynx”, $_SERVER[“HTTP_USER_AGENT”])) {
$browser = “Lynx”;
} elseif(ereg(“WebTV”, $_SERVER[“HTTP_USER_AGENT”])) {
$browser = “WebTV”;
} elseif(ereg(“Konqueror”, $_SERVER[“HTTP_USER_AGENT”])) {
$browser = “Konqueror”;
} elseif (ereg( ‘Mozilla/([0-9].[0-9]{1,2})’,$_SERVER[HTTP_USER_AGENT])) {
$browser = “Mozilla”;
} else {
$browser = “Unknown”;
}

// Auslesen der Betriebssysteme
if (strstr($_SERVER[HTTP_USER_AGENT], “Windows 95”)) {
$os = “Windows 95”;
} elseif (strstr($_SERVER[HTTP_USER_AGENT], “Windows 98”)) {
$os = “Windows 98”;
} elseif (strstr($_SERVER[HTTP_USER_AGENT], “NT 4.0”)) {
$os = “Windows NT”;
} elseif (strstr($_SERVER[HTTP_USER_AGENT], “NT 5.0”)) {
$os = “Windows 2000”;
} elseif (strstr($_SERVER[HTTP_USER_AGENT], “NT 5.1”)) {
$os = “Windows XP”;
} elseif (strstr($_SERVER[HTTP_USER_AGENT], “NT 6.0”)) {
$os = “Windows Vista”;
} elseif (strstr($_SERVER[HTTP_USER_AGENT], “Win”)) {
$os = “Windows”;
} elseif (strstr($_SERVER[HTTP_USER_AGENT], “Mac”)) {
$os = “MacOS”;
} elseif (strstr($_SERVER[HTTP_USER_AGENT], “Linux”)) {
$os = “Linux”;
} elseif (strstr($_SERVER[HTTP_USER_AGENT], “FreeBSD”)) {
$os = “FreeBSD”;
} elseif (strstr($_SERVER[HTTP_USER_AGENT], “SunOS”)) {
$os = “SunOS”;
} elseif (strstr($_SERVER[HTTP_USER_AGENT], “IRIX”)) {
$os = “IRIX”;
} elseif (strstr($_SERVER[HTTP_USER_AGENT], “BeOS”)) {
$os = “BeOS”;
} elseif (strstr($_SERVER[HTTP_USER_AGENT], “OS/2”)) {
$os = “OS/2”;
} elseif (strstr($_SERVER[HTTP_USER_AGENT], “AIX”)) {
$os = “AIX”;
} elseif (strstr($_SERVER[HTTP_USER_AGENT], “Unix”)) {
$os = “Unix”;
} else {
$os = “Unknown Operating System”;
}

//ermitteln der Zeit und des Datum´s
$time = date(“F jS Y, H:i”);
$datum = date(“d.m.y”);

//User Login Name ermitteln
$uname = “[”.$userdata[‘user_name’]."]";

//ermitteln von welcher Website kam der Besucher
$referer = $HTTP_REFERER;

//welche seite wurde betrachtet
$page = $_SERVER[‘REQUEST_URI’];

// IP bestimmen und Host auslesen
$ip = getenv(“REMOTE_ADDR”);
$host = gethostbyaddr($ip);

//anlegen des Datei-Namen
$fname = $datum.$uname;

//anwenden der fopen() function mit der berechtigung ein file zuerstellen
$fp = fopen(LOG."$fname.txt", “a+”);

?>
[/code]