Bonjour sous le cadre de mon PFE je doit developper une application web ( php) qui va analyser le fichier log de squid ( nommé acess.log) extraire le contenu nécessaire pour la supervision de l'accès internet et le mettre dans une BD mysql puis analyser le contenu de la page visiter et générer automatiquement une alert (ajout d'une alerte a la table alert ) , voila le code :


Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
<?
 
require_once("../conf/conf.php");
 
$fichier="access2.log";\\ le fichier a analyser
 
//**** extraire le contenu nécessaire*******
 
$do = fopen ($fichier, "r");
$contenu = fread ($do, filesize ($fichier));
 
$ligne = explode("\n", $contenu);
$infoavant="vide";
for ($i = 0; $i < (count($ligne)-1); $i++) {
$info = split("[ ]+", $ligne[$i]);
 
$infocourant=$info[2];
 
if($infocourant!==$infoavant)
 
{
$date= $info[0];
$adresse= $info[2];
$http= $info[6];
$dateheur=date('d-m-Y H:i:s',$date);
$info2 = split("/", $http);
$url=$info2[2];
echo $http;
 
/* -------Analyse du contenu  ----------*/
$j=0;
$resultat="";
$trouve=0;
//****************** recuperation des mot clé a recherché de la table keyword*********
 
$req2="SELECT * FROM `keyword`";
$data2=mysql_query($req2);   
 
   while($res2=mysql_fetch_array($data2))
{
//*************** analyse du page web visité*************************
$fichierr = fopen($http,"r");
while (!feof ($fichierr))
{
$donnees = strtolower(strip_tags(fgets($fichierr, 4096)));
$pos = strpos($donnees, $res2["mot"]);
if ($pos>0) $trouve=1;
}//fin de la boucle
if ($trouve==1)
{
$resultat.=$res2["mot"] ;
$i++;
}
fclose($fichier);
$trouve=0;
}
 
 
 
 
       $sql="INSERT INTO `fichierlog` (`datevisite`, `adresseclub`, `adresseurl`,`urlvisited`,`keyword`) VALUES ('$dateheur', '$adresse', '$url','$http','$resultat');";
$resut= mysql_query($sql);
echo $sql;
 
 
}
 
$infoavant=$info[2];
}
header("Location:alertgenerator.php?); // redirection a la page alerte qui va générer des alerte selon le contenu de la table fichierlog
?>
le problème c'est que le scripte tourne dans un boucle infinie et ne donnne plus de résultats , pouvez vous m'aider a resoudre se probleme ou si vous avez des proposition pour d'autre algorithme

Exemlpe du fichier log a analyser