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

Soyez le premier à donner votre avis sur cette source.

Snippet vu 10 833 fois - Téléchargée 29 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
Guillaume170194 Messages postés 53 Date d'inscription dimanche 11 mai 2008 Statut Membre Dernière intervention 25 novembre 2021
4 mai 2011 à 23:40
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
Guillaume170194 Messages postés 53 Date d'inscription dimanche 11 mai 2008 Statut Membre Dernière intervention 25 novembre 2021
4 mai 2011 à 23:38
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.