Vous n'êtes pas identifié(e).
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
++ vYk
Quand Chuck Norris utilise Windows, il ne plante pas.
ChuckNorrisN'aimePasWindows
Hors ligne
Merci davyk
Mieux vaut poser une question et passer pour un con, que se taire et le rester...
Hors ligne
Merci davyk
merci à toi de nous avoir dégotté et amélioré ça, ça me sert à fond , 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
Je vais faire une petite recherche...
Mieux vaut poser une question et passer pour un con, que se taire et le rester...
Hors ligne
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
cooooooooooooooollllllllllll ;);)
Quand Chuck Norris utilise Windows, il ne plante pas.
ChuckNorrisN'aimePasWindows
Hors ligne
Bonsoir,
Histoire de vous embêter, comme je n'ai rien autre à faire ...
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
Bonsoir,
Histoire de vous embêter, comme je n'ai rien autre à faire ...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
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
et voilà, il s'est encore énervé
Quand Chuck Norris utilise Windows, il ne plante pas.
ChuckNorrisN'aimePasWindows
Hors ligne
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
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
@bvffalo73: tu vois que ça sert d'être perfectionniste
Quand Chuck Norris utilise Windows, il ne plante pas.
ChuckNorrisN'aimePasWindows
Hors ligne
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
Dernière modification par lnain (21/10/2009 18:01:10)
ziteplus 0.9.6
jch.pierson.free.fr
Hors ligne
- 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
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
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
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
tu as trop assuré grâve terrible!
++ vYk
Quand Chuck Norris utilise Windows, il ne plante pas.
ChuckNorrisN'aimePasWindows
Hors ligne
totalement satisfait!!!!
rhaaaaaa§
ziteplus 0.9.6
jch.pierson.free.fr
Hors ligne
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
rerereresalut, et qu'est ce qu'apporte ce bout de code en plus à celui d'avant (que je trouvais pourtant parfait ) ?
ziteplus 0.9.6
jch.pierson.free.fr
Hors ligne
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
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
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