Fichier d'historique des connexions (log) à une page (sans mysql)

Soyez le premier à donner votre avis sur cette source.

Snippet vu 9 571 fois - Téléchargée 27 fois

Contenu du snippet

A chaque chargement du script, une ligne est ajoutée au fichier d'historique présenté sous forme d'une liste à plusieurs colonnes : action, jour, heure, login, ip, os et navigateur.
pour mes besoins j'ai 3 types d'enregistrements : connexion, ouverture de compte et fermeture de compte.
L'intérêt principal de ceci est de ne pas utiliser de base de données (cela est util pour certains), mais le script est donc forcément de plus en plus lent au fur et a mesure du nombre de visites (mais rien de rédibitoire, rassurez vous!)
Donc si vous utilisez une base (mysql...), préférez un accès base qu'une modification comme celle ci d'un fichier texte :)

Source / Exemple :


Page "log.html" :
________________________________________________________________
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><title>Fichier Log</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<link href="style.css" rel="stylesheet" type="text/css" />
<div align="center"><h1>Fichier Log</h1></div>
<table width="80%"  border="0" cellspacing="2" cellpadding="0" align="center"><thead>
Légende : &nbsp; &nbsp; <span style="font-face: Courier New, Lucida Console; font-weight: bold;">=></span> Logged in &nbsp; &nbsp; <span style="font-face: Courier New, Lucida Console; font-weight: bold; background-color: #44DD44;">++</span> Subscribed &nbsp; &nbsp; <span style="font-face: Courier New, Lucida Console; font-weight: bold; background-color: #DD5555;">--</span> Unsubscribed &nbsp; &nbsp; 
<br><br></thead>
<tr><th>Action</th><th>Jour</th><th>Heure</th><th>Login</th><th>Adresse IP</th><th>Système d'exploitation</th><th>Navigateur</th></tr>
<tr><td style="font-face: Courier New, Lucida Console; font-weight: bold;" align="center">=></td><td>11/05/2004</td><td>20:03</td><td>mout</td><td>192.168.0.22</td><td>Windows XP</td><td>Internet Explorer</td></tr>
________________________________________________________________

script à intégrer dans une page d'autentification par exemple :
________________________________________________________________
<?php
//detection des parametres de l'utilisateur :
$agent = $_SERVER['HTTP_USER_AGENT'];
/*  navigateur :  */
if ($agent == "") {  }
elseif (eregi("MSIE", $agent)) {  $nav="Internet Explorer"; }
elseif (eregi("Mozilla", $agent)) { $nav = "Netscape"; }
else { $nav = "Autres"; }
if ($agent == "") { }

/*  WINDOWS  */
elseif (eregi("Windows", $agent))
{
        if(eregi("95", $agent)) { $os = 'Windows 95'; }
        elseif (eregi("98; Win 9x", $agent)) { $os = 'Windows Me'; }
        elseif (eregi("98", $agent)) { $os = 'Windows 98'; }
        elseif (eregi("NT 5.0", $agent)) { $os = 'Windows 2000'; }
        elseif (eregi("NT 5.1", $agent)) { $os = 'Windows XP'; }
        elseif (eregi("NT", $agent)) { $os = 'Windows NT'; }
        else { $os = 'Autres Windows'; }
}

/*  LINUX  */
elseif (eregi("linux", $agent)) { $os = 'Linux'; }

/*  BEOS  */
elseif (eregi("beos", $agent)) { $os = 'BeOS'; }

/*  AUTRE  */
else { $os = 'Autres'; }

$ip=$_SERVER["REMOTE_ADDR"];

/*------------------------------------------*/

	$filename = "log.html";
	$file = fopen($filename, "r");
	$log_avant = fread($file, filesize($filename));
	fclose($file);
	$file = fopen($filename, "w");
	$color = "#FFFFFF"; //couleur d'arriere plan de la ligne en cours (est changé chez moi selon le type de connexion (simple, inscription ou desinscription)
	$log_apres = $log_avant."<tr style=\"background-color: $color;\"><td style=\"font-face: Courier New, Lucida Console; font-weight: bold;\" align=\"center\">=></td><td>".date("d/m/Y")."</td><td>".date("H:i")."</td><td>$login</td><td>$ip</td><td>$os</td><td>$nav</td></tr>\r\n";
	fwrite($file, $log_apres); 
	fclose($file);
?>

Conclusion :


La fin de la page html est volontairement laissée ouverte (pas de </body></html> ni de footer) car on y rajoute directement les lignes...

A voir également

Ajouter un commentaire

Commentaires

Messages postés
47
Date d'inscription
dimanche 11 mai 2008
Statut
Membre
Dernière intervention
23 avril 2020

Désolé

J'ai oublié de demander une astuce pour éviter que dans le fichier log il y est plusieur fois la même adresse ip. Car autrement il est très long le fichier

Merci et excuser moi pour le double message
Messages postés
47
Date d'inscription
dimanche 11 mai 2008
Statut
Membre
Dernière intervention
23 avril 2020

Merci pour ce code

J'aimerai récupérer le nom et prénom du visiteur grâce à une fenêtre en javascript ou autre
Comment faire ?

Merci

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.