Et me dis pas qu'il est trop compliqué à mettre en place... pour le
compteur de visite un simple fichier texte dans lequel tu écrit peut
suffire... .. .
TiotBour
Messages postés103Date d'inscriptionsamedi 21 décembre 2002StatutMembreDernière intervention 5 janvier 20071 24 déc. 2005 à 05:34
Pour le compteur de visite, je vais te detailler comment on fait :
<?
$fp = fopen('compteur.txt','r+'); // on ouvre le fichier compteur.txt, la ou est stocké le nombre de visite.
$nb_visites = fgets($fp,259); // on recupére le nombre inscrit dans le fichier
$nb_visites++; // on incremente ce nombre
fseek($fp,0); // On revient au début du fichier compteur.txt
fwrite($fp,$nb_visites); // On inscrit le nouveau nombre
fclose($fp); // on ferme le fichier
echo 'Il y a eu ' . $nb_visites . ' visites à ce jour'; // Affichage
?>
Pour ton compteur live, c'est possible sans mysql, mais c'est trééééééééés long à faire.
//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();
?>
Le
code a utiliser si vos pages sont a la racine du site
<?