Bonsoir, j'utilise un code PHP de compteur de visite : il marche bien sur un serveur en PHP4 (Free) mais pas sur un serveur en PHP5. Mais le problème, c'est que je ne le comprends pas donc ne peut pas le corriger :
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
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
<?
include("../visite/connect_visite.php") ;

//on recupere l adresse ip du visiteur
if($_SERVER) 	{
  			if(isset($_SERVER['HTTP_X_FORWARDED_FOR']))
      				$adress = $_SERVER['HTTP_X_FORWARDED_FOR'];
    			elseif(isset($_SERVER['HTTP_CLIENT_IP']))
      				$adress = $_SERVER['HTTP_CLIENT_IP'];
    			else
      				$adress = $_SERVER['REMOTE_ADDR'];
  		}
 else 		{
    			if(getenv('HTTP_X_FORWARDED_FOR'))
      				$adress = getenv('HTTP_X_FORWARDED_FOR');
    			elseif(getenv('HTTP_CLIENT_IP'))
      				$adress = getenv('HTTP_CLIENT_IP');
    			else
      				$adress = getenv('REMOTE_ADDR');
  		}

//on verifie si on a pas changé de jour et on recupere le chiffre du compteur
$sql="select * from compteur_visite where ip='compteur'";
$res=mysql_query($sql, $db);
$ligne = mysql_fetch_object ($res);
$date = date("Y-m-d");

//on convertit l heure courante en minute d une journee
$time=(date("H") * 60) + date("i");

//on recupere le compteur courant et le temps t
$compteur=$ligne->compteur;
$t=$ligne->time; //temps de connexion de reference
$d=$ligne->duree; //duree de renouvellement de reference

//on test si on a changé de jour
if ($date!="$ligne->date")
{
	//on vide toutes les addresses ip enregistrées dans la table lors du changement de jour
	$sql="delete from compteur_visite where ip!='compteur'";
	$res=mysql_query($sql, $db) or die ("requete invalide supp ip");
	//on met a jour la nouvelle date dans la table
	$sql="update compteur_visite set date='$date'";
	$res=mysql_query($sql, $db) or die ("requete invalide maj date");
}

//on verifie l adresse ip du visiteur et aussi son heure de passage
$sql="select * from compteur_visite where ip='$adress'";

$res=mysql_query($sql, $db) or die ("requete invalide verif ip");
$ligne = mysql_fetch_object ($res);
$num_rows =mysql_numrows ($res);
if ($num_rows==0)
{
	//on enregistre l adresse ip si elle est inconnu et on incremente le compteur
	$sql="insert into compteur_visite (ip,time,duree) values ('$adress','$time','$time')";
	$res=mysql_query($sql, $db)or die ("requete invalide enr ip");
	$compteur+=1;
	$sql="update compteur_visite set compteur=$compteur where ip='compteur'";
	$res=mysql_query($sql, $db) or die ("requete invalide up compt");
}
else
{
	//si l'adresse ip est connu alors verifie si sa connexion precedente est superieur a la durée
	//de renouvellement et si son heure de passage precedente incremente ou pas les connectés
	$time1=$ligne->time; //on recupere l'heure de sa precedente connexion de notre connecté
	$duree1=$ligne->duree; //on recupere l'heure de sa precedente connexion de notre connecté
	
	// on verifie si sa derniere connexion ne date pas de plus que la duree de reference
	if ($d*60<($time - ($duree1)))
	{
		//si la duree de reference est depassé alors notre connecté est comptablisé 
		//comme nouvelle visite et on met a jour sa nouvelle heure de passage
		$sql="update compteur_visite set time=$time,duree=$time where ip='$adress'";
		$res=mysql_query($sql, $db) or die ("requete invalide maj time");
		
		//on cree une ligne fictive pour pouvoir le comptabilisé dans les connectés de jour
		$adress1=$adress.".".$compteur;
		$sql="insert into compteur_visite (ip,time,duree) values ('$adress1','$time','$time')";
		$res=mysql_query($sql, $db)or die ("requete invalide enr ip");
		
		//et on increment le compteur de visite
		$compteur+=1;
		$sql="update compteur_visite set compteur=$compteur where ip='compteur'";
		$res=mysql_query($sql, $db) or die ("requete invalide up compt");
	}
	else
	{
		//on met a jour son heure de passage si elle est superieure a t
		if ($time>(($time1)-$t))
		{
			$sql="update compteur_visite set time=$time where ip='$adress'";
			$res=mysql_query($sql, $db) or die ("requete invalide maj time");
		}
	}
}


//on compte le nb de connecté de la journée
$sql="select * from compteur_visite";
$res=mysql_query($sql, $db) or die ("requete invalide compte visiteur journee");
$compteur_j=(mysql_numrows ($res))-1;

//on compte le nb de connecté
$time=$time-$t;
$sql="select * from compteur_visite where time>=$time and ip!='compteur'";
$res=mysql_query($sql, $db) or die ("requete invalide compte visisteur connecté");
$compteur_c=mysql_numrows ($res);
mysql_free_result($res);
mysql_close();
?>
outre qu'il est en "mysql_" et non en "mysqli_", je ne comprends pas ce qui est en rouge.