Konfigurierbares Log-System
In diesem Tutorial werden wir uns ein Log-System erarbeiten.
Ein Log-System zeichnet Datein auf, zum Beispiel wan eine Seite aufgerufen wurde oder welche IP die Seite aufgerufen hat.
Warnung! Spoiler!

Benötigt wird:
=> ein Editor z.b. Notepad++
=> Webspace mit PHP
=> Spaß am programmieren (Nicht wichtig, aber gut)
=> Ein wenig erfahrung in Sachen Programmieren (Ist immer gut!)


Vorbereitung
Bevor es los geht legst du ersteinmal einen Ordner auf dem Server an in dem die Log's gespeichert werden sollen.
Ich nenne ihn einfach "log". Wenn du einen Linux Server hast must du jetzt noch die Rechte entsprechend ändern. Die Linux-Rechte, chmod gennant, must du jetzt ändern: Setzte die Rechte auf 777 oder rwxrwxrwx. Jetz ist der Ordner beschreibbar.

Benötigte Variablen für das Script:

$_SERVER['SCRIPT_NAME'] <= Die aufgerufene Seite
$_SERVER['HTTP_USER_AGENT'] <= Verwendeter Browser
$_SERVER['REMOTE_ADDR'] <= Die IP des Betrachters
$_SERVER['REQUEST_METHOD'] <= Aufruf Methode (Get oder Post)
$time <= Keine SystemVariable, Wert von date();


log.php
Php Code:


<?php
$logfile = "log";			 /* $logfile ist der Pfad zu dem Ordner für die Logs */ 
$logname = "zugriff.log";	/* Name der LogDatei im Ordner $logfile				*/
$time = date("j-M-Y, l");	 /* Setzten der Variable $time						 */ 
/* Erzeugen des Arrays $all (In Arrays kann man Werte Zussammenfassen und dabei Namen oder Nummern geben). Es dient der 
   Übersichtlichkeit. */
$all = array(																										  
				"name"		 => $_SERVER['SCRIPT_NAME'],																
				"browser"	 => $_SERVER['HTTP_USER_AGENT'],		
				"ip"		 => $_SERVER['REMOTE_ADDR'],		 
				"zeit"		 => $time,						   
				"ordner"	 => $logfile,						
				"datei"	 => $logname,						
				"request"	 => $_SERVER['REQUEST_METHOD'],
				"t"		 => ' | ', 
/* Statt ' | ' kannst du ein anderes Trennzeichen einfügen das zwischen den Variablen stehen soll.
 * Ein Beispiel wie es jetzt aussieht:
 *  
 *  /log.php | 127.0.0.1 | Opera/9.80 (Windows NT 5.1; U; de) Presto/2.5.24 Version/10.53 | GET | 25-Jul-2010, Sunday
 *  Wenn du bei ' | ' '///' einsetzten würdest würde es so aussehen:
 *  /log.php///127.0.0.1///Opera/9.80 (Windows NT 5.1; U; de) Presto/2.5.24 Version/10.53///GET///25-Jul-2010, Sunday
 *  
 *  Mach's einfach wies dir gefällt
 *
 */
				"n"		 => "\n", /* nicht ändern !!! */
				"s"			=> '/'
			);
				
$daten= $all['name'].$all['t'].$all['ip'].$all['t'].$all['browser'].$all['t'].$all['request'].$all['t'].$all['zeit'].$all['n'];
$datei = fopen($all['ordner'].$all['s'].$all['datei'],"a");
fwrite($datei, $daten);

/*
 * Jetz kannst du die Variable $daten noch anpassen. 
 * Du kannst die $all Variablen dort anders anordnen, wichtig ist:
 * 2 Variablen müssen durch .$all['t']. getrennt werden.
 * Als letztes muss .$all['n'] stehen.
 *  
 * <Variablen> 
 * $all['name']	 <= Der Pfad + Name der aufgerufenen Datei
 * $all['t']		 <= Trennzeichen
 * $all['ip']		<= IP des Besuchers
 * $all['browser']	<= Browser des Besuchers
 * $all['request']	<= Aufrufmethode (Post oder Get)
 * $all['zeit']		<= Datum im amerikanischen Format
 * $all['n']		 <= EscapeSequenz (WICHTIG!!!)
 *  
 */
?>





Gut, jetzt habt ihr das Script, es muss nur noch in die entsprechenden Seiten eingebunden werden von denen Log erstellt werden sollen.
1. Lade die log.php auf den Server
2. Trage bei allen Seiten oben den folgenden Code ein:
Php Code:


<?php
include 'PFAD ZUR log.php/log.php";
?>



Statt Pfad zu log.php einfach den Pfad angeben z.b. software/free/bratack/unfaelle_beim_programmieren/
Also:
[php]
<?php
include 'software/free/bratack/unfaelle_beim_programmieren/log.php";
?>
[/ühp]
3. Lade die anderen Dateien auch hoch. (Dateiendung muss .php sein!)
Soooo das wars dann auch schon wieder. Ich hoffe ihr konntet mir folgen usw. Wenn Fragen vorhanden perl mail an bratack@live.de oder
besser als /m in Knuddels an master bratack. Ich wrde probieren euch zu helfen.

PS: Wenn's euch geholfen hat probiert doch ein Script zu schreiben was aus der Log Datei eine Statistik macht, viel spaß
PSS: Sorry, ich wusste nich ob ich du oder sie oderihr sagen sollte also ist das etwas verwirrent. Hoffe ihr konntet es trozdem verstehen


Bearbeitet von master Bratack (25.07.2010, 19:36:44)