Forum ZitePLUS

La communauté des utilisateurs du CMS ZitePLUS

Vous n'êtes pas identifié(e).

#26 20/10/2009 01:09:05

davyk
Membre
Inscription : 09/09/2008
Messages : 819
Site Web

Re : insérer un compteur

salut,

je pense que ce script est super utile pour savoir à un instant t, combien d'utilisateurs sont connectés et combien de visiteurs sur la journée en cours: tout ce que GA ne fait pas, en somme.
GA c'est bien pour de l'audit donc à long terme, ce script est donc un complément (presque!) indispensable wink

++ vYk


Quand Chuck Norris utilise Windows, il ne plante pas.
ChuckNorrisN'aimePasWindows

Hors ligne

#27 20/10/2009 01:10:59

Fredo42
Membre
Inscription : 03/10/2009
Messages : 470
Site Web

Re : insérer un compteur

Merci davyk


Mieux vaut poser une question et passer pour un con, que se taire et le rester...

Hors ligne

#28 20/10/2009 01:24:06

davyk
Membre
Inscription : 09/09/2008
Messages : 819
Site Web

Re : insérer un compteur

Fredo42 a écrit :

Merci davyk

merci à toi de nous avoir dégotté et amélioré ça, ça me sert à fond wink , en plus ça faisait vraiment longtmps que je cherchais cela.
on pourrais juste l'améliorer en le rendant plus joli comme d'autres scripts qui utilisent des images de chiffres pour le compteur..


Quand Chuck Norris utilise Windows, il ne plante pas.
ChuckNorrisN'aimePasWindows

Hors ligne

#29 20/10/2009 01:27:20

Fredo42
Membre
Inscription : 03/10/2009
Messages : 470
Site Web

Re : insérer un compteur

Je vais faire une petite recherche...


Mieux vaut poser une question et passer pour un con, que se taire et le rester...

Hors ligne

#30 20/10/2009 01:50:53

Fredo42
Membre
Inscription : 03/10/2009
Messages : 470
Site Web

Re : insérer un compteur

J'ai trouvé quelques trucs, je regarderais dans la semaine pour les intégrer à ce script.
Bonne nuit


Mieux vaut poser une question et passer pour un con, que se taire et le rester...

Hors ligne

#31 20/10/2009 02:14:53

davyk
Membre
Inscription : 09/09/2008
Messages : 819
Site Web

Re : insérer un compteur

cooooooooooooooollllllllllll wink;);)


Quand Chuck Norris utilise Windows, il ne plante pas.
ChuckNorrisN'aimePasWindows

Hors ligne

#32 20/10/2009 22:49:13

bvffalo73
Membre
Inscription : 16/02/2007
Messages : 56

Re : insérer un compteur

Bonsoir,
Histoire de vous embêter, comme je n'ai rien autre à faire ... tongue

substr("20091020220115", 0, 12) - substr("20091020215845", 0, 12) = 43

qui est plus grande que 3.
L'utilisateur qui se connecte à 21h58m45' n'est pas considéré comme connecté à 22h01m15' (il est bien pris en compte dans les compteurs de visite et de requêtes).
Cordialement

Hors ligne

#33 20/10/2009 23:09:49

Fredo42
Membre
Inscription : 03/10/2009
Messages : 470
Site Web

Re : insérer un compteur

bvffalo73 a écrit :

Bonsoir,
Histoire de vous embêter, comme je n'ai rien autre à faire ... tongue

substr("20091020220115", 0, 12) - substr("20091020215845", 0, 12) = 43

qui est plus grande que 3.
L'utilisateur qui se connecte à 21h58m45' n'est pas considéré comme connecté à 22h01m15' (il est bien pris en compte dans les compteurs de visite et de requêtes).
Cordialement

bonsoir,
fais une recherche sur substr et tu verras que

substr("20091020220115", 0, 12) - substr("20091020215845", 0, 12) = 3

Bonne nuit


Mieux vaut poser une question et passer pour un con, que se taire et le rester...

Hors ligne

#34 21/10/2009 00:13:01

Fredo42
Membre
Inscription : 03/10/2009
Messages : 470
Site Web

Re : insérer un compteur

Pour avoir le compteur avec des images de chiffre, j'ai trouvé http://www.tyaran.com/teltutoc/comptima.zip sur http://www.tyaran.com/comptphp.htm
il est simple, peut-ête un peu lourd dans ce compteur car il y a 4 nombres à convertir, mais bon...
A la fin du code, à la place des "echo" il faut mettre:

$nombre=$nb_visiteurs;
$lgr=strlen($nombre);// compte le nombre de chiffre de notre compteur
$manque = 6-$lgr;// compte le nombre de 0 manquant pour arrivé à 6 chiffres
for($i = 0; $i < $manque; $i++)
{ // ajoute le nombre de 0 pour arrivé à 6 chiffres
affiche(0); // affichage les 0
}
for($i = 0; $i < $lgr; $i++)
{ // extraction de l'un des chiffres du compteur
$chiffre = substr($nombre, $i, 1);
affiche($chiffre); //  affichage des chiffres
}
echo "<br/>visiteurs depuis le xx/xx/xx".'<br/><br>';

$nombre=$nb_aujourdhui;
$lgr=strlen($nombre);// compte le nombre de chiffre de notre compteur
$manque = 4-$lgr;// compte le nombre de 0 manquant pour arrivé à 4 chiffres
for($i = 0; $i < $manque; $i++)
{ // ajoute le nombre de 0 pour arrivé à 4 chiffres
affiche(0); // affichage les 0
}
for($i = 0; $i < $lgr; $i++)
{ // extraction de l'un des chiffres du compteur
$chiffre = substr($nombre, $i, 1);
affiche($chiffre); //  affichage des chiffres
}
echo "<br/>aujourd'hui".'<br/><br/>';

$nombre=$visiteuractuel;
$lgr=strlen($nombre);// compte le nombre de chiffre de notre compteur
$manque = 3-$lgr;// compte le nombre de 0 manquant pour arrivé à 3 chiffres
for($i = 0; $i < $manque; $i++)
{ // ajoute le nombre de 0 pour arrivé à 3 chiffres
affiche(0); // affichage les 0
}
for($i = 0; $i < $lgr; $i++)
{ // extraction de l'un des chiffres du compteur
$chiffre = substr($nombre, $i, 1);
affiche($chiffre); //  affichage des chiffres
}
echo "<br/>actuellement sur le site".'<br/><br/><br/>';

$nombre=$nb_requetes;
$lgr=strlen($nombre);// compte le nombre de chiffre de notre compteur
$manque = 6-$lgr;// compte le nombre de 0 manquant pour arrivé à 6 chiffres
for($i = 0; $i < $manque; $i++)
{ // ajoute le nombre de 0 pour arrivé à 6 chiffres
affiche(0); // affichage les 0
}
for($i = 0; $i < $lgr; $i++)
{ // extraction de l'un des chiffres du compteur
$chiffre = substr($nombre, $i, 1);
affiche($chiffre); //  affichage des chiffres
}
echo "<br/>pages affichées";

function affiche($rang)
{
// ici on affiche les images représentant les chiffres :
// deco est le répertoire qui les contient
switch($rang)
{
case '0':
echo '<img src="deco/0.gif">';
break;
case '1':
echo '<img src="deco/1.gif">';
break;
case '2':
echo '<img src="deco/2.gif">';
break;
case '3':
echo '<img src="deco/3.gif">';
break;
case '4':
echo '<img src="deco/4.gif">';
break;
case '5':
echo '<img src="deco/5.gif">';
break;
case '6':
echo '<img src="deco/6.gif">';
break;
case '7':
echo '<img src="deco/7.gif">';
break;
case '8':
echo '<img src="deco/8.gif">';
break;
case '9':
echo '<img src="deco/9.gif">';
break;
}
}

il suffit ensuite de mettre les images présentes dans l'archive http://www.tyaran.com/teltutoc/comptima.zip dans le répertoire "deco" de zite et le tour est joué.
vous pouvez mettre les images ailleurs, mais il faudra changer la fin du code en mettant le bon répertoire.

L'affichage généré est en "colonne" car j'ai fais les tests dans un panneau latéral.
Bonne soirée/nuit

Dernière modification par Fredo42 (21/10/2009 18:41:07)


Mieux vaut poser une question et passer pour un con, que se taire et le rester...

Hors ligne

#35 21/10/2009 02:25:34

davyk
Membre
Inscription : 09/09/2008
Messages : 819
Site Web

Re : insérer un compteur

et voilà, il s'est encore énervé wink


Quand Chuck Norris utilise Windows, il ne plante pas.
ChuckNorrisN'aimePasWindows

Hors ligne

#36 21/10/2009 11:56:30

bvffalo73
Membre
Inscription : 16/02/2007
Messages : 56

Re : insérer un compteur

Hello,

c'est vrai qu'on est pas à deux ou trois utilisateurs près, arrêtons donc la discussion sur le nombre exact des utilisateurs en ligne.

J'aimerais bien cependant vérifier que substr() EST aussi intélligente que cela, c'est à dire elle sait faire une opération sur une date et heure.
Le php chez moi et chez Free donnent invariablement :

substr("20091020220115", 0, 12) - substr("20091020215845", 0, 12) = 43

Hors ligne

#37 21/10/2009 12:40:25

Fredo42
Membre
Inscription : 03/10/2009
Messages : 470
Site Web

Re : insérer un compteur

Mea culpa, tu as raison!
va falloir que je modifie un peu le code....
Merci d'avoir été tatillon!


Mieux vaut poser une question et passer pour un con, que se taire et le rester...

Hors ligne

#38 21/10/2009 13:20:37

davyk
Membre
Inscription : 09/09/2008
Messages : 819
Site Web

Re : insérer un compteur

@bvffalo73: tu vois que ça sert d'être perfectionniste wink


Quand Chuck Norris utilise Windows, il ne plante pas.
ChuckNorrisN'aimePasWindows

Hors ligne

#39 21/10/2009 18:00:41

lnain
Membre
Inscription : 27/06/2009
Messages : 78
Site Web

Re : insérer un compteur

bonsoir, deux petites remarques au sujet du compteur graphique(génial d'ailleur) :
- il manque l'accent circonflexe sur requête : $nombre=$nb_requetes;
- il faut , je pense, remplacer $nombre=$_SESSION['visiteuractuel']; par : $nombre=$visiteuractuel
je n'y connais rien mais apparemment, c'est comme ça que ça marche sur mon site : jch.pierson.free.fr
en tous les cas, merci pour tout c'est vraiment génial, moi qui cherchais cela depuis si longtemps, vous êtes vraiment des chefs wink

Dernière modification par lnain (21/10/2009 18:01:10)


ziteplus 0.9.6
jch.pierson.free.fr

Hors ligne

#40 21/10/2009 18:49:38

Fredo42
Membre
Inscription : 03/10/2009
Messages : 470
Site Web

Re : insérer un compteur

- j'ai supprimé tous les accents dans les variables
- $_SESSION est un oubli de modif quand j'ai fait le copier/coller de mon site sur le forum. Sur mon site j'ai coupé le script en deux... une partie qui compte, et l'autre qui affiche, d'où l'utilisation de $_SESSION.
- je fais dans la soirée les modifs pour le comptage des présents... merci bvffalo73
- sympa les chiffres de tes compteurs!


Mieux vaut poser une question et passer pour un con, que se taire et le rester...

Hors ligne

#41 21/10/2009 23:37:11

Fredo42
Membre
Inscription : 03/10/2009
Messages : 470
Site Web

Re : insérer un compteur

il a fallu que je me replonge dans les heures décimales!! des maths de niveau 6ème....
voici la modif à faire:
remplacer:

/*
* Pour compter les visiteurs actuel
* on considère que si l'ip a été enregistré
* il y a moins de 3 minutes, le visiteur
* est toujours là.
*/
foreach( $donnees as $cle => $valeur )
{
if( substr($time, 0, 12) - substr($valeur, 0, 12) <= 3  &&
$cle != $argument_visites &&
$cle != $argument_requetes ) {
$visiteuractuel++;
}
}

Par:

/*
* Pour compter les visiteurs actuel
* on considère que si l'ip a été enregistré
* il y a moins de 3 minutes, le visiteur
* est toujours là.
* 3 minutes => 3/60 = 0.05 minute décimale
*/
foreach( $donnees as $cle => $valeur )
{
if(((substr($time,8,2)+(substr($time,10,2))/60))-((substr($valeur,8,2)+(substr($valeur,10,2))/60)) < 0.05  &&
$cle != $argument_visites &&
$cle != $argument_requetes ) {
$visiteuractuel++;
}
}

le post #9 est corrigé

Dernière modification par Fredo42 (21/10/2009 23:43:45)


Mieux vaut poser une question et passer pour un con, que se taire et le rester...

Hors ligne

#42 21/10/2009 23:44:07

Fredo42
Membre
Inscription : 03/10/2009
Messages : 470
Site Web

Re : insérer un compteur

Je remet ici le code complet:

<?php

/*
* Si le fichier où l'on stock,
* les données n'existe pas encore
* on le crée.
*/
$fichier = '.htcompteur';
if( !file_exists($fichier) ) {
$fp = fopen($fichier, "w");
fwrite($fp, serialize(array()));
fclose($fp);
}

/*
* Définition de variables
* nécessaire au compteur :
* - deux termes constants,
* - l'ip du visiteur,
* - la date et l'heure.
*/
$argument_visites = 'visites';
$argument_requetes = 'requetes';
$ip = $_SERVER['REMOTE_ADDR'];
$time = date('YmdHis');
$visiteuractuel=0;

/*
* Récupération des données du
* compteur précédemment stockées.
*/
$lignes = file($fichier);
$donnees = unserialize($lignes[0]);

/*
* Pour chaque clés du tableau de données
* qui ne soit pas attribuée aux visite et aux requêtes
* si la valeur correspond à une date antérieur
* au même jour, on supprime l'ip du visiteur.
*/
foreach( $donnees as $cle => $valeur )
{
if( substr($valeur, 0, 8) != substr($time, 0, 8) &&
$cle != $argument_visites &&
$cle != $argument_requetes ) {
unset($donnees[$cle]);
}
}
/*
* On incrémente ( ajoute +1 ) la valeur
* du nombre de requêtes.
* Si l'ip n'est pas encore enregistrée,
* on incrémente la valeur du nombre de visites
* et on ajoute l'ip dans le tableau accompagné
* de la date et de l'heure de l'exécution.
*/
$donnees[$argument_requetes]++;
if( !$donnees[$ip] ) {
$donnees[$argument_visites]++;
$donnees[$ip] = $time;
}
/*
* Si l'ip est déjà enregistrée,
* on met à jour la date et l'heure.
*/
else {
$donnees[$ip] = $time;
}

/*
* Pour compter les visiteurs actuel
* on considère que si l'ip a été enregistré
* il y a moins de 3 minutes, le visiteur
* est toujours là.
* 3 minutes => 3/60 = 0.05 minute décimale
*/
foreach( $donnees as $cle => $valeur )
{
if(((substr($time,8,2)+(substr($time,10,2))/60))-((substr($valeur,8,2)+(substr($valeur,10,2))/60)) < 0.05  &&
$cle != $argument_visites &&
$cle != $argument_requetes ) {
$visiteuractuel++;
}
}

/*
* On effectue un petit report de variable
* pour une utilisation ultérieur plus aisée.
*/
$nb_visiteurs = $donnees[$argument_visites];
$nb_aujourdhui = count($donnees)-2;
$nb_requetes = $donnees[$argument_requetes];

/*
* On stock le tableau dans le fichier de données
* en écrasant sa valeur précédente.
*/
$fp = fopen($fichier,"w");
fwrite($fp, serialize($donnees));
fclose($fp);

/*
* On affiche les résultats du compteur.
*/
echo $nb_visiteurs." visiteurs dont".'<br/>';
echo $nb_aujourdhui." aujourd'hui et".'<br/>';
echo $visiteuractuel." maintenant.".'<br/>';
echo $nb_requetes." pages affichées.";
?>

Dernière modification par Fredo42 (12/06/2010 11:10:37)


Mieux vaut poser une question et passer pour un con, que se taire et le rester...

Hors ligne

#43 22/10/2009 23:42:04

Fredo42
Membre
Inscription : 03/10/2009
Messages : 470
Site Web

Re : insérer un compteur

Plus de remarque sur le code?
J'ai réussi à satisfaire tout le monde?!


Mieux vaut poser une question et passer pour un con, que se taire et le rester...

Hors ligne

#44 23/10/2009 13:30:12

davyk
Membre
Inscription : 09/09/2008
Messages : 819
Site Web

Re : insérer un compteur

tu as trop assuré grâve terrible! wink

++ vYk


Quand Chuck Norris utilise Windows, il ne plante pas.
ChuckNorrisN'aimePasWindows

Hors ligne

#45 26/10/2009 17:29:14

lnain
Membre
Inscription : 27/06/2009
Messages : 78
Site Web

Re : insérer un compteur

totalement satisfait!!!!
rhaaaaaa§


ziteplus 0.9.6
jch.pierson.free.fr

Hors ligne

#46 11/11/2009 01:19:18

bvffalo73
Membre
Inscription : 16/02/2007
Messages : 56

Re : insérer un compteur

Hello,

je n'ai pas dit tous mes défauts !!! Il y a énervant aussi !!!

Pour les fans du compteur "tout en images", voilà un bout de code qui donne plus de flexibilité par rapport à celui trouvé sur www.tyaran.com.

/*
* On affiche les résultats du compteur.
*/
echo affiche($nb_visiteurs,6)." visiteurs dont".'<br/>';
echo affiche($nb_aujourdhui,4)." aujourd'hui et".'<br/>';
echo affiche($visiteuractuel,2)." maintenant.".'<br/>';
echo affiche($nb_requetes,6)." pages affichées.";

function affiche ($unnombre=123456,$longeurmin=4) {
  $temps = '';
  $longeur = strlen($unnombre);
  if ($longeur < $longeurmin) {
    $unnombre = str_repeat("0", $longeurmin - $longeur) . $unnombre;
    $longeur = $longeurmin;
  }
  for ($i=0; $i<$longeur; $i++) { $temps .= "<img src=\"deco/".substr($unnombre,$i,1).".gif\">"; }
  return $temps;
}

Hors ligne

#47 11/11/2009 15:57:14

lnain
Membre
Inscription : 27/06/2009
Messages : 78
Site Web

Re : insérer un compteur

rerereresalut, et qu'est ce qu'apporte ce bout de code en plus à celui d'avant (que je trouvais pourtant parfait wink ) ?


ziteplus 0.9.6
jch.pierson.free.fr

Hors ligne

#48 11/11/2009 16:26:43

bvffalo73
Membre
Inscription : 16/02/2007
Messages : 56

Re : insérer un compteur

Hello,
par rapport à celui dans le post #34, il est plus court :-D

Sérieusement, ça permet de changer la deuxième paramètre (le chiffre) à la volée pour fixer le nombre minimum de chiffres à afficher.  Pour empêcher l'ajout des "0" devant, il faut juste fixer cette paramètre à 0.
Eventuellement on peut l'employer pour afficher n'importe quel nombre (entier).
Cdlt

Dernière modification par bvffalo73 (11/11/2009 16:31:32)

Hors ligne

#49 11/11/2009 16:29:22

Fredo42
Membre
Inscription : 03/10/2009
Messages : 470
Site Web

Re : insérer un compteur

salut,
oui nettement plus court et fonctionnel!!!
je suis d'ailleurs en train de l'adapter à mon site!
Merci bvffalo73


Mieux vaut poser une question et passer pour un con, que se taire et le rester...

Hors ligne

#50 14/12/2009 19:23:18

Satanas
Membre
Inscription : 27/01/2008
Messages : 84
Site Web

Re : insérer un compteur

Bonsoir à tous,

bon voilà une petite réalisation à partir de Zite : UV7ab.
Et là dessus, je voudrais intégré un compteur de visites faisant état du nombre total de visiteurs : à l'année, au mois, à la semaine et à la journée.
BBclone fait cela, mais je n'arrive pas à l'implanter avec Zite. Quelqu'un a-t-il une solution, svp ?
J'ai essayé une solution php/mysql : c'est jjscompteur, mais il faut se connecter à une base de données et je ne le souhaitais pas. Exemple jjscompteur ici

Merci d'avance pour votre aide et bonne continuation à tous.

Dernière modification par Satanas (14/12/2009 19:55:51)

Hors ligne

Pied de page des forums