Designed by NoKi !
57 en ligne
  Forum | Actu | Glossaire | Codes | Tips | Liens | Livres | Annuaire
 

 Recherche





   

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 !

      v1.3p © ASP-PHP.net 2002  

    Didier le 24/01/2003 (181 705 hits)
    Didier Téléchargez gratuitement et légalement des logiciels Microsoft ! Si, si ;)
    • Visual Studio 2010
    • Office 2010
    • Expression Studio 3
    • SQL Server 2008
    • et d'autres...
    Au fil des news  
    PHP - Drupagora : 1ère edition
    Utiliser Reporting Services pour des NewsLetter - SQL Server Reporting Services et les NewsLetters
    Le moteur de rapport inclus dans Microsoft SQL Server permet de créer de nombreux rapports ...
    Changer la page d'erreur 401 SharePoint - La page d'erreur d'authentification SharePoint
    Avec l'authentification classique des sites SharePoint, l'erreur d'authentification est gérée par ...
    PHP - Graphique de l'angle du soleil en fonction du lieu
    PHP5 - Graphique de l'angle du soleil en fonction du lieu
    Adobe - Disponibilité d'Adobe Creative Suite 5.5
    Les Thèmes dans SharePoint 2010 - Gérer les thèmes dans SharePoint 2010
    SharePoint 2010 apporte de nombreuses modifications dont certaines dans le principe des thèmes.
    JavaScript - fonction qui affiche l'heure à travers javascript
    Installer SharePoint Foundation 2010 sur Windows 7 - Installer SP Foundation 2010 sur Windows Seven
    Lorsque l'on souhaite développer dans le monde SharePoint, il existe plusieurs solutions. La ...
    SharePoint et SQL Server 2008 R2 Report Server - Comment accéder à SharePoint depuis SSRS 2008 R2
    Depuis la première version, la solution de rapport proposée par Microsoft "SQL Server Reporting ...
    JS - Envoi d'un formulaire après chargement d'une image
    Divers - Bannir une ip dans le global asax
    Dreamweaver CS5 - Nouvelle version Dreamweaver CS5
    Déjà plus de 6 mois que le produit est sorti, il fallait bien que je vous en parle un peu. Je vous ...
    SharePoint Output Caching dans un site Intranet - Comment utiliser le cache dans un site Publishing
    Afin de permettre l'amélioration des performances de sa ferme MOSS utilisée pour le site portail ...
    Adobe - Adobe lance le Musée Adobe des Médias Numériques
    Adobe - Adobe lance HTML5 Pack pour Illustrator CS5
    PHP - Forum PHP 2010 : Le programme
    Magazines - Le numéro 133 de programmez est disponible
    Adobe - Adobe lance des applications Photoshop Express....
    PHP - Détermination de l'intersection entre 2 segments
    Magazines - Le N°132 de Programmez est disponible
    Les alertes dans SharePoint 2007 - Comment SharePoint 2007 gère les User Alerts
    Une des fonctionnalités de base de SharePoint, aussi bien dans Windows SharePoint Services (WSS) ...
    Adobe - Photoshop.com Mobile pour Android 1.2
    Adobe - Adobe dévoile une technologie de lecture.......
    PHP - Experts PHP : participez au Forum PHP 2010 !
    PHP - Fobec.com - Code source PHP & javascript
    Foliotage alphabétique - Lister sur la première lettre d'un champ
    Pour faire suite à l'article de JPierre sur la pagination alphabétique, voici, en ASP et en PHP, ...
    Dreamweaver CS4 + Php + Mysql - Pagination alphabétique
    Je vous propose la création d'une barre de navigation ou pagination alphabétique pour filtrer les ...
    Adobe - HTML5 dans Dreamweaver CS5
    VBScript - Déterminer si un chemin est absolu ou relatif
    VBScript - Lire/écrire un fichier texte
    Magazines - Le N°130 de Programmez est disponible
    Hebergement - Hébergement à prix libre
    Adobe - Adobe Creative Suite 5
    PHP - Calcul de la date de Pâques
    Magazines - Le N°128 de Programmez est disponible
    Magazines - Le N°127 de Programmez est disponible
    Dreamweaver CS4 + Php + Mysql - Trucs et Astuces - Part 6
    Pour continuer dans le même style, je vous propose une suite au précédent article. Rechercher tous ...
    Adobe - Adobe Photoshop.com Mobile pour iPhone 1.1
    JavaScript - Ajouter une page dans vos favorites
    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
     DotNet Project MVP TechNet Groupes Utilisateurs Microsoft ASP-magazine