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

Soyez le premier à donner votre avis sur cette source.

Vue 4 210 fois - Téléchargée 196 fois

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

Ajouter un commentaire Commentaires
Messages postés
181
Date d'inscription
mardi 8 juin 2004
Statut
Membre
Dernière intervention
28 avril 2009

Bon bah tant pis :(
Messages postés
9433
Date d'inscription
mardi 9 octobre 2001
Statut
Membre
Dernière intervention
13 avril 2007
8
pas vraiment non...
Messages postés
181
Date d'inscription
mardi 8 juin 2004
Statut
Membre
Dernière intervention
28 avril 2009

une mise à jour qui devrait vous plaire non?
Messages postés
181
Date d'inscription
mardi 8 juin 2004
Statut
Membre
Dernière intervention
28 avril 2009

Desole mais j'aime bien les " " habitude tu java ca marche donc ; Alors que les balises fermantes c'est normal . ;)
Messages postés
9433
Date d'inscription
mardi 9 octobre 2001
Statut
Membre
Dernière intervention
13 avril 2007
8
Faut pas virer les quotes dans les variables $_SERVER['REMOTE_ADDR'] quand t'affiches avec echo et les simples quotes. Pour les doubles quotes et echo c'est inutile, autant prendre des simples.
Afficher les 11 commentaires

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.