Bombre de connectés, compteur de visites.

cs_DMon Messages postés 1 Date d'inscription mercredi 16 novembre 2005 Statut Membre Dernière intervention 23 décembre 2005 - 23 déc. 2005 à 22:52
massbbc Messages postés 126 Date d'inscription jeudi 26 mai 2005 Statut Membre Dernière intervention 24 février 2022 - 25 oct. 2006 à 18:03
Salut tout le monde!

J'aimerais mettre sur mon site web, un compteur de visites, et le nombre de connectés sur le site, sans utiliser MySQL,

et en script...

Vous allez me dire : "T'as pas cherché sur ce site bouffon??" lol, et bien si!! j'ai cherché, mais soi, les codes étaient trop compliqués, ou

sans assez d'explications...

Je m'en remet à vous tous!! lol

Merci d'avance.
DMon

6 réponses

kankrelune Messages postés 1293 Date d'inscription mardi 9 novembre 2004 Statut Membre Dernière intervention 21 mai 2015
24 déc. 2005 à 04:44
http://www.phpcs.com/code.aspx?ID=28282



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... .. .



@ tchaOo°


l'homme est un loup pour l'homme... .. .
TiotBour Messages postés 103 Date d'inscription samedi 21 décembre 2002 Statut Membre Dernière intervention 5 janvier 2007 1
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.
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
24 déc. 2005 à 11:32
Salut,


<?php

$fp = fopen('compteur.txt','w') or die('ERREUR d'ouverture de fichier');

$nb_visites = intval(file_get_contents('compteur.txt'));

$nb_visites++;

$nb_visites=strval($nbvisites);

fwrite($fp, $nb_visites) or die('ERREUR d'écriture de fichier');;

fclose($fp) or die('ERREUR de fermeture de fichier');;

echo 'Il y a eu ' . $nb_visites . ' visites à ce jour';

?>

avec toutes les vérifications nécéssaires...


In a dream, I saw me, drop dead... U was there, U cried... It was just a dream, if I die, U won't cry, maybe, U'll be happy

Mon site (articles sur la programmation et programmes)
cs_frop01 Messages postés 1352 Date d'inscription lundi 27 octobre 2003 Statut Membre Dernière intervention 19 novembre 2008 2
24 déc. 2005 à 19:27
Salut,



Jetes un coup d'oeil sur mon script BeStats v1.1 sur mon site perso.

Module de statistique de visites de votre site et Compteur de visites des pages sans base de données



Démonstration sur le même site à droite.



Cordialement

frop01

http://perso.wareteam.com

PS: Si votre problème est résolu, prière de bien vouloir clôturer votre message par une réponse acceptée !

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
24 déc. 2005 à 19:46
Salut,

: [auteurdetail.aspx?ID=185381 frop01], ton code est mauvais pour les mêmes raisons...

Mal codé : " à la place de ';

file_get_content non utilisé (alors que t'aurais pu supprimer trois lignes...)


In a dream, I saw me, drop dead... U was there, U cried... It was just a dream, if I die, U won't cry, maybe, U'll be happy

Mon site (articles sur la programmation et programmes)
massbbc Messages postés 126 Date d'inscription jeudi 26 mai 2005 Statut Membre Dernière intervention 24 février 2022 1
25 oct. 2006 à 18:03
j'ai un probleme avec mon code.
Il marche avec une BD mais mon problem ces kil n'incrémente pas kan plusieurs poste se connecte.
A l'aide SVP






<?
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();
?>

Le
code a utiliser si vos pages sont a la racine du site
<?


include("./visite/visite.php");

print"Nb total de visiteurs: $compteur
";

print"Nb de visiteurs aujourdhui: $compteur_j
";

print"Nb visiteurs connectés: $compteur_c
";
?>
Rejoignez-nous