Vous n'êtes pas identifié(e).
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 iciMerci d'avance pour votre aide et bonne continuation à tous.
Bonsoir,
je vois que tu utilises ZitePLUS 0.9.0.
Est-ce que tu as essayé la solution simple (le compteur de Fredo42):
- ajouter une page PHP de type Panneau latéral
- par la config des pages, choisir par exemple un type de panneau 3 (pour l'afficher sous le menu)
- par l'éditeur de source (la "roue dentée") mettre le code de Fredo42 situé quelques messages plus haut
- publier la page
a+
jean-paul
Dernière modification par jpg (14/12/2009 23:28:50)
Hors ligne
@satanas: en tout cas, il a du chien ton site !
++ vYk
Quand Chuck Norris utilise Windows, il ne plante pas.
ChuckNorrisN'aimePasWindows
Hors ligne
je vais modifier le script pour qu'il corresponde à tes besoins
Mieux vaut poser une question et passer pour un con, que se taire et le rester...
Hors ligne
voilà, il n'y a plus tester...
il y a des erreurs
je le refais dans la soirée (18/12/2009)
Dernière modification par Fredo42 (18/12/2009 20:28:26)
Mieux vaut poser une question et passer pour un con, que se taire et le rester...
Hors ligne
je vais modifier le script pour qu'il corresponde à tes besoins
ça c'est sympa!
Quand Chuck Norris utilise Windows, il ne plante pas.
ChuckNorrisN'aimePasWindows
Hors ligne
merci
Mieux vaut poser une question et passer pour un con, que se taire et le rester...
Hors ligne
si quelqu'un sait simplifier çà je suis preneur!
date('W',mktime ((substr($time,8,2)),(substr($time,10,2)),(substr($time,12,2)),(substr($time,4,2)),(substr($time,6,2)),(substr($time,0,4))))
Mieux vaut poser une question et passer pour un con, que se taire et le rester...
Hors ligne
wa con!
Quand Chuck Norris utilise Windows, il ne plante pas.
ChuckNorrisN'aimePasWindows
Hors ligne
ben ouais....
j'ai pas trouvé plus simple!
les dates étant stokées sous la forme AAAAMMJJHHMMSS j'ai rien trouvé d'autre pour récupérer le timestamp....
Mieux vaut poser une question et passer pour un con, que se taire et le rester...
Hors ligne
Mais bon, le principal c'est qu'il est son compteur de visiteurs connectés, aujourd'hui, à la semaine, au mois, à l'année et total....
Mieux vaut poser une question et passer pour un con, que se taire et le rester...
Hors ligne
si quelqu'un sait simplifier çà je suis preneur!
date('W',mktime ((substr($time,8,2)),(substr($time,10,2)),(substr($time,12,2)),(substr($time,4,2)),(substr($time,6,2)),(substr($time,0,4))))
après réflexion, $time étant l'heure actuelle, date('W') se suffit à lui-même....
reste toujours le même pb pour $valeur...
Bonne nuit....
Dernière modification par Fredo42 (17/12/2009 03:39:31)
Mieux vaut poser une question et passer pour un con, que se taire et le rester...
Hors ligne
t'es un acharné toi, je te reconnais bien là
bonne nuit
Quand Chuck Norris utilise Windows, il ne plante pas.
ChuckNorrisN'aimePasWindows
Hors ligne
pondre un script après 2 nuits blanches, et 3 journées de boulot c'est hard.....
mais bon j'arrive encore à m'auto-corriger, c'est bon signe!
Mais là, stop!
Dodo!
Mieux vaut poser une question et passer pour un con, que se taire et le rester...
Hors ligne
Le script ne fonctionne pas comme il faut...
je regarderai à tête reposée....
Mieux vaut poser une question et passer pour un con, que se taire et le rester...
Hors ligne
Merci davyk pour l'appréciation concernant mon site.
Ben Fredo, grand respect et très admiratif de ton travail.
Un grand merci à toi. Maintenant, on passe à la phase de test grandeur nature. A voir comment ça va fonctionner.
Enfin, en attendant c'est en ligne et je vous invite à passer simplement pour faire monter le compteur : Mon petit zite qui a du chien comme dirait davyk !
Et concernant le format de la date, ceci n'a pas d'incidences sur le compteur. L'essentiel est que çà fonctionne. Je ne compte pas récupérer la date dans le bloc "Visites". Je l'ai déjà en entête du site.
Bonne soirée à vous tous et passez de bonnes fêtes.
Hors ligne
merci satanas mais le script n'est pas juste....
j'ai un peu de travail à faire dessus encore... j'espère pouvoir le boucler cette nuit
Mieux vaut poser une question et passer pour un con, que se taire et le rester...
Hors ligne
voilà j'ai modifié le script, je l'ai testé en local en changeant la date système et ça à l'air de fonctionner correctement...
<?php
/*
* Si le fichier où l'on stock,
* les données n'existe pas encore
* on le crée.
*/
$fichier = '.htcompteurtest';
if( !file_exists($fichier) ) {
$fp = fopen($fichier, "w");
fwrite($fp, serialize(array()));
fclose($fp);
}
$argument_visitestotal = 'visitestotal';
$argument_visitessemaine = 'visitessemaine';
$argument_visitesmois = 'visitesmois';
$argument_visitesan = 'visitesan';
$ip = $_SERVER['REMOTE_ADDR'];
$time = date('YmdHis');
/*
* 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_visitestotal &&
$cle != $argument_visitessemaine &&
$cle != $argument_visitesmois &&
$cle != $argument_visitesan ) {
unset($donnees[$cle]);
}
}
/*
* 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.
*/
if( !$donnees[$ip] ) {
$donnees[$argument_visitestotal]++;
if((substr($time,0,4)) == (substr($valeur,0,4)) &&
$cle != $argument_visitestotal &&
$cle != $argument_visitessemaine &&
$cle != $argument_visitesmois &&
$cle != $argument_visitesan ) {
$donnees[$argument_visitesan]++;
} else { $donnees[$argument_visitesan]=1;}
if((substr($time,4,2)) == (substr($valeur,4,2)) &&
$cle != $argument_visitestotal &&
$cle != $argument_visitessemaine &&
$cle != $argument_visitesmois &&
$cle != $argument_visitesan ) {
$donnees[$argument_visitesmois]++;
} else { $donnees[$argument_visitesmois]=1;}
if(date('W',mktime ((substr($time,8,2)),(substr($time,10,2)),(substr($time,12,2)),(substr($time,4,2)),(substr($time,6,2)),(substr($time,0,4)))) == (date('W',mktime ((substr($valeur,8,2)),(substr($valeur,10,2)),(substr($valeur,12,2)),(substr($valeur,4,2)),(substr($valeur,6,2)),(substr($valeur,0,4))))) &&
$cle != $argument_visitestotal &&
$cle != $argument_visitessemaine &&
$cle != $argument_visitesmois &&
$cle != $argument_visitesan ) {
$donnees[$argument_visitessemaine]++;
} else { $donnees[$argument_visitessemaine]=1;}
$donnees[$ip] = $time;
}
/*
* Si l'ip est déjà enregistrée,
* on met à jour la date et l'heure.
*/
else {
$donnees[$ip] = $time;
}
/*
* On effectue un petit report de variable
* pour une utilisation ultérieur plus aisée.
*/
$nb_visiteurstotal = $donnees[$argument_visitestotal];
$nb_visiteursan = $donnees[$argument_visitesan];
$nb_visiteursmois = $donnees[$argument_visitesmois];
$nb_visiteurssemaine = $donnees[$argument_visitessemaine];
$nb_aujourdhui = count($donnees)-4;
/*
* 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 "visites totales: ".$nb_visiteurstotal.'<br/>';
echo "cette année: ".$nb_visiteursan.'<br>';
echo "ce mois: ".$nb_visiteursmois.'<br>';
echo "cette semaine: ".$nb_visiteurssemaine.'<br>';
echo "aujourd'hui: ".$nb_aujourdhui.'<br/>';
?>
Mieux vaut poser une question et passer pour un con, que se taire et le rester...
Hors ligne
Salut Fred,
bon, j'ai mis à jour : on va voir comment tout cet ensemble se comporte.
Je te tiens au courant.
Bonne journée à toi
Hors ligne
en plus court c'est peut être:
date('W', mktime(0, 0, 0, substr($valeur,4,2), substr($valeur,6,2), substr($valeur,0,4)))
(et oui, le relou est de retour ... ;p)
Hors ligne
Satanas, le compteur sur le site http://uv7ab.free.fr/ affiche des valeurs qui ne me semble pas bien logique...
as-tu fais des modifs ou s'agit-il d'un bug?
Edit: Idem sur http://satanas.templates.free.fr/
Dernière modification par Fredo42 (31/05/2010 23:43:14)
Mieux vaut poser une question et passer pour un con, que se taire et le rester...
Hors ligne
Bonsoir Fredo42
aucune modification aucune maj. Absolument rien.
Il est vrai que je constate que le nombre à la semaine est supérieur au nombre de visites au mois.
Que faire ?
Hors ligne
semaine > mois c'est normal car le mois a commencé mardi et la semaine lundi
par contre visites mois=visites année pas normal
visite année<visite semaine pas normal non plus
fais un copier/coller du code, je vais regarder
Mieux vaut poser une question et passer pour un con, que se taire et le rester...
Hors ligne
Bonjour Fredo,
Voici le code (issu du site : uv7ab.free.fr. Je te donne cette Url, car il y a pas mal de passage ces temps-ci)
<?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);
}
$argument_visitestotal = 'visitestotal';
$argument_visitessemaine = 'visitessemaine';
$argument_visitesmois = 'visitesmois';
$argument_visitesan = 'visitesan';
$ip = $_SERVER['REMOTE_ADDR'];
$time = date('YmdHis');
/*
* 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_visitestotal &&
$cle != $argument_visitessemaine &&
$cle != $argument_visitesmois &&
$cle != $argument_visitesan ) {
unset($donnees[$cle]);
}
}
/*
* 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.
*/
if( !$donnees[$ip] ) {
$donnees[$argument_visitestotal]++;
if((substr($time,0,4)) == (substr($valeur,0,4)) &&
$cle != $argument_visitestotal &&
$cle != $argument_visitessemaine &&
$cle != $argument_visitesmois &&
$cle != $argument_visitesan ) {
$donnees[$argument_visitesan]++;
} else { $donnees[$argument_visitesan]=1;}
if((substr($time,4,2)) == (substr($valeur,4,2)) &&
$cle != $argument_visitestotal &&
$cle != $argument_visitessemaine &&
$cle != $argument_visitesmois &&
$cle != $argument_visitesan ) {
$donnees[$argument_visitesmois]++;
} else { $donnees[$argument_visitesmois]=1;}
if(date('W',mktime ((substr($time,8,2)),(substr($time,10,2)),(substr($time,12,2)),(substr($time,4,2)),(substr($time,6,2)),(substr($time,0,4)))) == (date('W',mktime ((substr($valeur,8,2)),(substr($valeur,10,2)),(substr($valeur,12,2)),(substr($valeur,4,2)),(substr($valeur,6,2)),(substr($valeur,0,4))))) &&
$cle != $argument_visitestotal &&
$cle != $argument_visitessemaine &&
$cle != $argument_visitesmois &&
$cle != $argument_visitesan ) {
$donnees[$argument_visitessemaine]++;
} else { $donnees[$argument_visitessemaine]=1;}
$donnees[$ip] = $time;
}
/*
* Si l'ip est déjà enregistrée,
* on met à jour la date et l'heure.
*/
else {
$donnees[$ip] = $time;
}
/*
* On effectue un petit report de variable
* pour une utilisation ultérieur plus aisée.
*/
$nb_visiteurstotal = $donnees[$argument_visitestotal];
$nb_visiteursan = $donnees[$argument_visitesan];
$nb_visiteursmois = $donnees[$argument_visitesmois];
$nb_visiteurssemaine = $donnees[$argument_visitessemaine];
$nb_aujourdhui = count($donnees)-4;
/*
* 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 "Actuellement en ligne : ".$visiteuractuel.'<br/>'; //à supprimer si pas besoin du nombre de connecté */
echo '<table>'."\n";
echo '<tr>';
echo '<td width="115px">Aujourd\'hui :</td>';
echo '<td width="60px" align="right">'.$nb_aujourdhui.'</td>';
echo '</tr>'."\n";
echo '<tr>';
echo '<td width="115px">Cette semaine :</td>';
echo '<td width="60px" align="right">'.$nb_visiteurssemaine.'</td>';
echo '</tr>'."\n";
echo '<tr>';
echo '<td width="115px">Ce mois :</td>';
echo '<td width="60px" align="right">'.$nb_visiteursmois.'</td>';
echo '</tr>'."\n";
echo '<tr>';
echo '<td width="115px">Cette année :</td>';
echo '<td width="60px" align="right">'.$nb_visiteursmois.'</td>';
echo '</tr>'."\n";
echo '<tr>';
echo '<td width="115px">Total des visites :</td>';
echo '<td width="60px" align="right">'.$nb_visiteurstotal.'</td>';
echo '</tr>'."\n";
echo '</table>'."\n";
?>
Dernière modification par Satanas (03/06/2010 11:19:10)
Hors ligne
Le code est bon donc normalement ça devrait être bon pour le calcul des visites. Cependant dans ton tableau d'affichage, tu prends la valeur de $nb_visiteursmois pour les visites de cette année au lieu de $nb_visiteursan
Avec cette modif ton compteur devrait retrouver des valeurs logiques!
Mieux vaut poser une question et passer pour un con, que se taire et le rester...
Hors ligne
Oups, c'est vrai. M'en va corriger ce soir. Merci.
Hors ligne