Designed by Maunakea !
81 en ligne   Boutique | Sites | Bar | Forum | PhpBB | Actu | Glossaire | Codes | Tips | Liens | Livres | Lettre  


 Recherche

 NewsLetter






   

Compteurs

Compter les hits ou les visites





Compter les hits
On utilisera un petit fichier, géré par le File System, dans lequel on incrémente un nombre à chaque chargement d'une page (inclure le script ci-dessous dans chaque page via SSI par exemple)

<% ' Compteur ASP de hits

' Création de l'objet permettant de manipuler les fichiers
Set FSO=CreateObject("Scripting.FileSystemObject")
' Le dossier "data" doit être déprotégé en écriture !
' (voir sinon avec l'admin de l'hébergeur)
fichier=Server.MapPath("/data") & "\compteur.txt"

' Lecture du fichier s'il existe et incrémente
cpt = 1
if FSO.FileExists(fichier) then
   set inF = FSO.OpenTextFile(fichier,1,false)
   cpt = cLng(inF.readLine) + 1 ' jusqu'à 2 milliards
   inF.close
end if

' Sauvegarde du compteur
set inF = FSO.createTextFile(fichier)
inF.writeLine(cpt)
inF.close
%>

<? // Compteur PHP de hits

$fichier="compteur.txt";

// Lecture du fichier s'il existe et incrémente
$cpt = 1;
if(file_exists($fichier)) {
   $inF = fopen($fichier,"r");
   $cpt = intval(trim(fgets($inF, 4096))) + 1; 
   fclose($inF); 
}

// Sauvegarde du compteur
$inF = fopen($fichier,"w");
fputs($inF,$cpt."\n"); 
fclose($inF);
?>

Remarques
  • On peut différencier chaque page en sauvegardant les hits dans un fichier différent...
  • On peut aussi ajouter un point dans le fichier à chaque hit puis regarder la taille du fichier...
  • <% ' Compteur ASP de hits
    Set FSO=CreateObject("Scripting.FileSystemObject")
    fichier=Server.MapPath("/data") & "\compteur.txt"

    ' Incrémente le compteur (crée le fichier si besoin)
    set inF = FSO.openTextFile(fichier,8,true)
    inF.write(".")
    inF.close

    ' Lecture de la taille du fichier
    cpt = FSO.GetFile(fichier).size
    %>
    <? // Compteur PHP de hits

    $fichier="compteur.txt";

    // Incrémente le compteur
    $inF = fopen($fichier,"a");
    fputs($inF,"."); 
    fclose($inF);

    // Lecture de la taille du fichier
    $cpt = filesize($fichier);
    ?>


    Compter les visites
    Le principe est le même sauf qu'il ne faut sauvegarder qu'un seul hit par session d'où un petit test ainsi qu'un marquage par cookie
    <% ' Compteur ASP de visites/cookie
    Set FSO=CreateObject("Scripting.FileSystemObject")
    fichier=Server.MapPath("/data") & "\compteur.txt"
    ' si c'est le premier hit de la session
    if request.cookies("visite")="" then
       ' marque la session
       response.cookies("visite")="ok"

       ' Incrémente le compteur (crée le fichier si besoin)
       set inF = FSO.openTextFile(fichier,8,true)
       inF.write(".")
       inF.close
    end if

    ' Lecture de la taille du fichier
    cpt = FSO.GetFile(fichier).size
    %>
    <? // Compteur PHP de hits/cookie
    $fichier="compteur.txt";
    // si c'est le premier hit de la session
    if($visite=="") {
       // marque la session
       setcookie("visite","ok");

       // Incrémente le compteur
       $inF = fopen($fichier,"a");
       fputs($inF,"."); 
       fclose($inF);
    }

    // Lecture de la taille du fichier
    $cpt = filesize($fichier);
    ?>

    ou par variable Session...
    <% ' Compteur ASP de visites/session
    Set FSO=CreateObject("Scripting.FileSystemObject")
    fichier=Server.MapPath("/data") & "\compteur.txt"
    ' si c'est le premier hit de la session
    if session("visite")="" then
       ' marque la session
       session("visite")="ok"

       ' Incrémente le compteur (crée le fichier si besoin)
       set inF = FSO.openTextFile(fichier,8,true)
       inF.write(".")
       inF.close
    end if

    ' Lecture de la taille du fichier
    cpt = FSO.GetFile(fichier).size
    %>
    <? // Compteur PHP de hits/session (v4+)
    session_register("visite");
    $fichier="compteur.txt";
    // si c'est le premier hit de la session
    if($visite=="") {
       // marque la session
       $visite="ok";

       // Incrémente le compteur
       $inF = fopen($fichier,"a");
       fputs($inF,"."); 
       fclose($inF);
    }

    // Lecture de la taille du fichier
    $cpt = filesize($fichier);
    ?>


    Afficher le résultat
    Le nombre de hits est dans la variable cpt, on peut donc soit l'afficher en mode texte
    Visite n° <%=cpt%>
    Visite n° <? echo $cpt; ?>

    soit l'afficher en mode graphique !...
    <% ' Affichage du compteur
    ' convertir en chaîne
    cptStr=cStr(cpt)
    ' mettre au moins 5 chiffres
    if len(cptStr)<5 then _
       cptStr=right("0000" & cptStr,5)
    ' Construction du compteur graphique
    cptGraph = "<table border='0' cellspacing='0'" _
       & " cellpadding='0'><tr>"
    for i = 1 to len(cptStr)
       cptGraph = cptGraph & "<td><img src='/img/" _
          & mid(cptStr,i,1) & ".gif'></td>"
    next
    cptGraph = cptGraph & "</tr></table>"
    ' Afficher le compteur
    response.write(cptGraph)
    %>

    Télécharger un exemple complet
    <? // Affichage du compteur
    // convertir en chaîne
    $cptStr=strval($cpt);
    // mettre au moins 5 chiffres
    if(strlen($cptStr)<5)
       $cptStr=substr("0000".$cptStr,-5);
    // Construction du compteur graphique
    $cptGraph = "<table border='0' cellspacing='0'";
    $cptGraph .= " cellpadding='0'><tr>";
    for($i=0;$i<strlen($cptStr);$i++) {
       $cptGraph .= "<td><img src='img/";
       $cptGraph .= substr($cptStr,$i,1).".gif'></td>";
    }
    $cptGraph .= "</tr></table>";
    // Afficher le compteur
    echo $cptGraph;
    ?>

    Télécharger un exemple complet
    A lire aussi
  • Et avec Flash, c'est possible aussi !!!
  • Offrir cet outil à vos visiteurs webmasters ?
  • Comment compter les visiteurs présents sur le site
  • Comment compter le nombre de fichiers téléchargés sur votre site

  • Pour pouvoir écrire dans ce forum, identifiez-vous !

     Lire  14/10/08 03:51 de nonante90
    bonjour j aimerai savoir comment je peux installer le...
      v1.3p © ASP-PHP.net 2002  

    Didier le 24/01/2003 (160 713 hits)
    Didier Testez gratuitement la plateforme web de Windows Server 2008 !
    Gagnez un voyage aux Etats-Unis pour la MS Project Conference !
    Au fil des news  
    CSharp - Sérialisation XML de vos objets
    Magazines - Le n°121 de Programmez est disponible
    Adobe - Adobe annonce MAX 2009 !
    Outils - WhoIs
    [MAJ] Dreamweaver MX + Php + MySql - Les formulaires - partie 3
    Mise à jour du code, par DB 77, affichage du code erreur, dans la page erreur.php, traduction des ...
    PHP - News avec photo - Système de gestion - affichage
    Gestion - Administration - Affichage d'une "News", "Actualité", "Info", ... avec : - mise en forme ...
    Outils - Crypt
    Dreamweaver Php Mysql - Région répétée imbriquée
    Je rebondis, sur un post du forum, pour vous montrer comment obtenir grâce à l'extension Simulated ...
    Magazines - Le n° 120 de Programmez est disponible
    Gérer les bases de contenu SharePoint - Gérer la croissance du volume des données
    Dans le cadre de la gestion quotidienne de ferme SharePoint, il existe une partie qu'il faut ...
    PHP - Le Coach PHP sur Visual Studio
    .NET - Ecrire une application .NET utilisant MySQL
    PHP - Utilisation de PHP dans le monde Microsoft
    Magazines - Le n° 119 de Programmez est disponible
    Adobe - Adobe annonce Photoshop Marketplace
    [MAJ] Tutoriel AJAX simple - En avant vers le WEB2.0
    Mis à jour le 20/04/2009
    Captcha «maison» sans extension - Et en plus, c'est gratuit ;)
    Un ami m'a demandé de l'aide ce matin pour insérer un captcha dans un formulaire pour son site ...
    Dreamweaver CS4 - Photoshop CS4 - Alliance parfaite pour la gestion des images
    Pour changer un peu des pages de code, je vous propose de voir ensemble, la fonctionnalité très ...
    JavaScript - Calcul automatique d'une facture
    Amélioration du Search MOSS: Manipulation XSL - Utilisation du XSL dans l'affichage des résultats
    Parmi tous les articles sur l'amélioration du moteur de recherche de Microsoft Office SharePoint ...
    Outils - Editeur d'icônes IcoFX
    Magazines - Le n°118 de Programmez est disponible
    JavaScript - Imprimer une autre page que celle en cours
    CSS - div pour imiter frame (Bandeau/Menu FIXES)
    [MAJ] [PHP] Un calendrier très complet -
    ajout des événements au calendrier
    PowerShell - Winforms pour l'aide des commandes GET PowerShell
    Adobe - Adobe Photoshop Lightroom 2 est offert ....
    Amélioration du Search MOSS: synonyme et Best Bet - La gestion des synonymes dans MOSS Search
    Le moteur de recherche de MOSS permet la configuration d'une liste de synonymes. Nous verrons donc ...
    AJAX - récup champs formulaires pour POST en AJAX
    PowerShell - Un windows Forms pour SharePoint en PowerShell
    Sondage associatif (compatibilité) - Qui va bien avec qui ?
    Cette fois, c'est un petit sondage que je vous propose. Il pourra bien sûr être adaptée à vos ...
    ASP - Hashage MD5 (cryptage irréversible)
    Adobe - 80% de réduction sur les versions Adobe Creative
    CSharp - Interroger un serveur Whois
    CSharp - Equivalent de la fonction PHP htmlentities()
    CSharp - Somme de contrôle CRC32
    Magazines - Le n°117 de Programmez est disponible
    Hebergement - Hébergement ASP et ASP.Net
    MOSS - Mon Profil - Personnalisation des profils utilisateurs de MOSS
    La gestion des profils utilisateurs de SharePoint fait partie des fonctionnalités de base de ...
    Dreamweaver CS3 + Php + Mysql - Le Jeu d'Enregistrements - Les fondamentaux Part-3
    La 3ème partie des fondamentaux, traitera essentiellement du jeu d'enregistrements ou Recordset. ...
    Tutorial : HTML | Scripting | ASP-PHP | ASP.net | SQL Server | XML
    Sharepoint | XAML | Pocket | Dreamweaver | VML | Divers
      Scripts : Scripting | ASP-PHP | ASP.net | Divers
      Boutique | Annuaire | Bannières | Météo | Tribune | Partenariats
    v3b © Didier 2003   
     

    Corpo Sciences de Reims Partitions gratuites Carte, météo, annonces
     ASP-magazine Codes Sources TechNet MVP The Inquirer FR El Roubio DotNet Project Groupes Utilisateurs Microsoft Wygwam CodePPC