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

Soyez le premier à donner votre avis sur cette source.

Vue 4 356 fois - Téléchargée 199 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
Syruis Messages postés 181 Date d'inscription mardi 8 juin 2004 Statut Membre Dernière intervention 28 avril 2009
5 oct. 2005 à 15:48
Bon bah tant pis :(
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 9
5 oct. 2005 à 15:39
pas vraiment non...
Syruis Messages postés 181 Date d'inscription mardi 8 juin 2004 Statut Membre Dernière intervention 28 avril 2009
5 oct. 2005 à 15:00
une mise à jour qui devrait vous plaire non?
Syruis Messages postés 181 Date d'inscription mardi 8 juin 2004 Statut Membre Dernière intervention 28 avril 2009
23 mai 2005 à 22:15
Desole mais j'aime bien les " " habitude tu java ca marche donc ; Alors que les balises fermantes c'est normal . ;)
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 9
20 mai 2005 à 17:13
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.