Mes listages de répertoires + log + module d'éxploitation des logs

Description

Mon code sert à lister les répertoire les fichiers séparément , les images comme des images dans un cadre et en même temps fait un log à l'arrive sur la page... voila.

la page de listage liste également les répertoires fils :)

Il liste le répertoire ou la page est situé mais n'affiche pas la page elle même (index.php) .

"le log" log donc l'ip, le navigateur, la date, l'heure, ...

le module d'explotation des logs est anarchique mais donne une bonne idée de votre indice de fréquentation ;) .

Source / Exemple :


<?
$DATE=getdate(time());
$fp = fopen("ip.txt", "a");
fputs ($fp, "$SCRIPT_NAME > $REMOTE_ADDR $REMOTE_HOST $HTTP_USER_AGENT $DATE[hours]H:$DATE[minutes]min $DATE[mday]D:$DATE[mon] de $DATE[year]\n");
fclose($fp);

echo $size[0];
    $rep = $_GET["rep"];
	$rep = "./".$rep;
	
	$handle=opendir($rep);
    
	echo "<font size='6'>Repertoires</font>\n<br />\n<ul>\n";
    while ($file = readdir($handle)) {
	if (is_dir($file)==true && $file!="."){
		if ($file!="..")
			echo "<li><a href='?rep=".$file."/'>".$file."</a>\n<br />\n";
	   }
    }
	echo "</ul>\n<br />\n<font size='6'>Fichiers</font>\n<br />\n";
    echo "<table border=0>\n<tr>\n";
     rewinddir();
     $i = 0;
	 
     while ($file = readdir($handle)) {
	 $file  = $rep.$file;
	 if(!ereg("index.php", $file)){
        if ($file != $rep && $file != $rep){
			if (substr($file,strlen($file)-3,3)=="jpg" || substr($file,strlen($file)-3,3)=="gif"|| substr($file,strlen($file)-3,3)=="bmp" || substr($file,strlen($file)-3,3)=="png" ){
                $size = getimagesize($file);
			if($size[0]>100 || $size[1]>100){
			if($size[0]>$size[1]){
          $wsize=100;
          $hsize=$size[1]/($size[0]/100);
		}
		else{
          $hsize=100;
          $wsize=$size[0]/($size[1]/100);
		}
         }
         else{
         $wsize=$size[0];
         $hsize=$size[1];
         }     
         echo "<td align='center'>\n<a href='".$file."' target=_blank>";
         echo "\n    <img src='".$file."' alt='".$file."' border='0' width=".$wsize." height=".$hsize.">\n   </a>\n  </td>\n";
         $i++;
         if ($i == 4){//4 est le nombre de colonnes
             echo " </tr>\n <tr>\n";
             $i = 0;
			}
		}
            else{//fichier pas images
            if (is_dir($file)==false){
                echo "<li><a href='".$file."'>".str_replace("./","",$file)."</a>\n<br />\n";
                }
            }
        }
     }}
     echo" </tr>\n</table>\n";

// fonction d'exploitation des logs 

if (!$fp = fopen("ip.txt","r")){
	echo "Echec de l'ouverture du fichier<br>";
}else{
	echo "Logs depuis le 3/10/2005 (8H15) <br>";
	$i=0;
	$fire=0;
//	$fire2=0;
	$fr=0;
	$us=0;
	$MSIE=0;
	$linux=0;
	$yahoo=0;
	$mac=0;
	$yahoo2=0;
	$msn=0;
	$google=0;
	while (!feof($fp)) { //on parcourt toutes les lignes
		
		$str = fgets($fp,2048);
		if ($str == "" or $str == null){
			echo "Nombre de Visites analysés : ".$i."<br /><br/>";	
			echo "Nombre de Firefox/1.0.7 1.0.6 analysés : ".$fire."<br/>";	
		//	echo "Nombre de Firefox/1.4 1.5 (beta) analysés : ".$fire2."<br/>";	
			echo "Nombre de Internet Explorer analysés : ".$MSIE."<br/>";
			echo "<br/>Nombre de navigateurs en Anglais analysés : ".$us."<br/>";
			echo "Nombre de navigateurs en Francais analysés  : ".$fr."<br/>";
			echo "<br>Nombre de Linux analysés : ".$linux."<br/>";				
			echo "Nombre de Mac/Apple analysés : ".$mac."<br/>";				
			echo "<br>Nombre de googlebot analysés : ".$google."<br/>";				
			echo "Nombre de yahoobot analysés : ".$yahoo."<br/>";				
			echo "Nombre de YahooSeeker analysés : ".$yahoo2."<br/>";
			echo "Nombre de msn bot analysés : ".$msn."<br/>";		
			exit;
		}
		$pos  = strpos($str,">");
		if ($pos ==  false)
			echo "erreur dans la page";
		else{
			$page = substr ($str,$pos);
			//fonction qui joue
		}	
		if ( ereg("Firefox", $str) )
			$fire++;
		if ( ereg("en-US;", $str) )
			$us++;
		if ( ereg("fr-FR;", $str) )
			$fr++;
		if ( ereg("fr)", $str) )
			$fr++;
		if ( ereg("Mac", $str) )
				$mac++;
		
		if ( ereg("Gmac", $str) )
				$mac--;
		
		if ( ereg("MSIE", $str) )
				$MSIE++;
				
		if ( ereg("msnbot", $str) )
				$msn++;
				
		if ( ereg("Linux", $str) )
				$linux++;
		if ( ereg("Googlebot", $str) )
				$google++;
		if ( ereg("Yahoo!", $str) )
				$yahoo++;
		if ( ereg("YahooSeeker", $str) )
				$yahoo2++;
		$i++;
	}
}

Conclusion :


en demo sur
http://lopez.thomas1.free.fr/fichiers/ voila.

demo d'explotation des logs ici:
http://lopez.thomas1.free.fr/log.php

Si vous utilisez ce source ou que vous l'avez amélioré, svp, ou demande sur le source, http://lopez.thomas1.fr/Linux/mail.php

voila j'espère que ca vous plaira ;) .

Codes Sources

A voir également

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.