juki_webmaster
Messages postés947Date d'inscriptionmercredi 19 novembre 2003StatutMembreDernière intervention 5 avril 20083 10 janv. 2007 à 00:42
nacedo57400 > "Par contre j'ai entendu qu'on a pas trop le droit de stocker l'IP des visiteurs, info ou intox ???" <<< si ya une declaration CNIL où est mentionné 'données de connexions' ça passe, pour les blogs (et site perso ?) il me semble que rien n'est à declarer.
nacedo57400
Messages postés39Date d'inscriptionsamedi 7 janvier 2006StatutMembreDernière intervention13 janvier 2009 9 janv. 2007 à 22:18
bien que un peut sévère, j'suis d'accord avec kankrelune, ce code est un peu léger. Ce qui me dérange un peu c'est le fait d'incrémenter une variable à chaque rechargement de page, rien que toi en allant sur ta page tu va rajouter une dizaine de visites par jour.
Par contre c'est toujours bien de rappeler comment lire et écrire dans un fichier.
perso j'préfère utiliser un XML (avec simpleXML) et y stocker l'IP du visiteur et le timestamp. Cela te permet de vérifier si le visiteur est déjà venue sur ta page et dans se cas tu n'effectue pas d'incrémentation. le timestamp te permet de supprimer les IPs après X temps pour ne pas surcharger ton fichier.
Par contre j'ai entendu qu'on a pas trop le droit de stocker l'IP des visiteurs, info ou intox ???
kankrelune
Messages postés1293Date d'inscriptionmardi 9 novembre 2004StatutMembreDernière intervention21 mai 2015 9 janv. 2007 à 15:46
L'histoire du fichier xml ne change rien car c'est deux exemples différents en fait... le compteur en lui même n'en utilise qu'un... .. .
Sinon il ne faut pas mettre
Vous etes le visiteur Num : $nbvisites
mais plutot
Cette page a été visionnée $nbvisites fois
Car ce n'est pas le nombre de visiteur que tu récupère mais le nombre d'affichage de la page... la nuance est de taille... quand à l'affichage de l'adresse ip ça risque de bloquer si l'internaute est derrière un proxy (entre autre)... .. .
Sinon bof bof... code très... trop basique... léger manque de rigueur dans la façon de coder... concaténer des chaines entre doubles quotes est un peu inutile... surtout dans ce genre de cas
print("Vous etes le visiteur Num : $nbvisites"."
");
= >
print(' Vous etes le visiteur Num : '.$nbvisites.'
');
Le compteur n'est même pas multipage ce qui aurait été un plus non négligeable... ça se fait en deux minutes... .. !
function myCounter($page, $file = 'counter.txt')
{
if(!is_file($file)) // si le fichier n'existe pas on le crée et on initialise son contenu
{
touch($file);
$contents = array();
}
elseif(false ($contents file_get_contents($file))) // on récupère le contenu en cas d'échec on renvoi false
return false;
else
$contents = unserialize($contents); // on délinéarise le contenu
// la page est enregistrée ou non... si oui on incrémente de 1 sinon on initialise à 1
if(!isset($contents[$page]))
$contents[$page] = 1;
else
$contents[$page]++;
// on ouvre le fichier en écriture en virant son contenu en cas d'échec on renvoi false
if(false ($handle @fopen($file,"w")))
return false;
// on écrit le contenu linéarisé en cas d'échec on renvoi false après avoir fermé le pointeur
if(!@fwrite($handle,serialize($contents)))
{
@fclose($handle);
return false;
}
// on ferme le pointeur
@fclose($handle);
// on renvoie le nombre d'affichage de la page
return $contents[$page];
}
echo 'Cette page à été affichée '.myCounter('maPage').' fois';
Ca peut même pas vraiment servir de tuto car il n'y a pas vraiment d'explication... .. .
Bref... sans vouloir être méchant ça fait plus penser à un code écrit en deux minutes après avoir découvert les fonction f*() qu'a un vrai code ou un tutorial... 4/10... .. .
@ tchaOo°
cs_morpheus57
Messages postés121Date d'inscriptionvendredi 31 mars 2006StatutMembreDernière intervention30 décembre 2010 9 janv. 2007 à 11:43
Perso j'aurais plutot utlisé un seul fichier XML plutôt que 2 fichier textes
kiki2sirom
Messages postés153Date d'inscriptionmardi 17 août 2004StatutMembreDernière intervention23 décembre 2010 9 janv. 2007 à 10:00
ah oui aussi, bon, c pas grand chose, mais bon faut le dire
print("Vous etes le visiteur Num : $nbvisites"."
"); // 7.On affiche le compteur à l'écran
j'aurais mis plutôt :
1) echo 'Vous êtes le visiteur Num :'.$nbvisites.'
';
2) un coup tu concatènes, un coup tu concatènes pas, un coup tu utilises print, un coup tu utilises echo... bref
Faut être plus régulier
Sinon rien à dire et rien à noter
kiki
kiki2sirom
Messages postés153Date d'inscriptionmardi 17 août 2004StatutMembreDernière intervention23 décembre 2010 9 janv. 2007 à 09:55
comment dire...
c plus un tutorial qu'une source utilisable telle quelle
10 janv. 2007 à 00:42
9 janv. 2007 à 22:18
Par contre c'est toujours bien de rappeler comment lire et écrire dans un fichier.
perso j'préfère utiliser un XML (avec simpleXML) et y stocker l'IP du visiteur et le timestamp. Cela te permet de vérifier si le visiteur est déjà venue sur ta page et dans se cas tu n'effectue pas d'incrémentation. le timestamp te permet de supprimer les IPs après X temps pour ne pas surcharger ton fichier.
Par contre j'ai entendu qu'on a pas trop le droit de stocker l'IP des visiteurs, info ou intox ???
9 janv. 2007 à 15:46
Sinon il ne faut pas mettre
Vous etes le visiteur Num : $nbvisites
mais plutot
Cette page a été visionnée $nbvisites fois
Car ce n'est pas le nombre de visiteur que tu récupère mais le nombre d'affichage de la page... la nuance est de taille... quand à l'affichage de l'adresse ip ça risque de bloquer si l'internaute est derrière un proxy (entre autre)... .. .
Sinon bof bof... code très... trop basique... léger manque de rigueur dans la façon de coder... concaténer des chaines entre doubles quotes est un peu inutile... surtout dans ce genre de cas
print("Vous etes le visiteur Num : $nbvisites"."
");
= >
print(' Vous etes le visiteur Num : '.$nbvisites.'
');
Le compteur n'est même pas multipage ce qui aurait été un plus non négligeable... ça se fait en deux minutes... .. !
function myCounter($page, $file = 'counter.txt')
{
if(!is_file($file)) // si le fichier n'existe pas on le crée et on initialise son contenu
{
touch($file);
$contents = array();
}
elseif(false ($contents file_get_contents($file))) // on récupère le contenu en cas d'échec on renvoi false
return false;
else
$contents = unserialize($contents); // on délinéarise le contenu
// la page est enregistrée ou non... si oui on incrémente de 1 sinon on initialise à 1
if(!isset($contents[$page]))
$contents[$page] = 1;
else
$contents[$page]++;
// on ouvre le fichier en écriture en virant son contenu en cas d'échec on renvoi false
if(false ($handle @fopen($file,"w")))
return false;
// on écrit le contenu linéarisé en cas d'échec on renvoi false après avoir fermé le pointeur
if(!@fwrite($handle,serialize($contents)))
{
@fclose($handle);
return false;
}
// on ferme le pointeur
@fclose($handle);
// on renvoie le nombre d'affichage de la page
return $contents[$page];
}
echo 'Cette page à été affichée '.myCounter('maPage').' fois';
Ca peut même pas vraiment servir de tuto car il n'y a pas vraiment d'explication... .. .
Bref... sans vouloir être méchant ça fait plus penser à un code écrit en deux minutes après avoir découvert les fonction f*() qu'a un vrai code ou un tutorial... 4/10... .. .
@ tchaOo°
9 janv. 2007 à 11:43
9 janv. 2007 à 10:00
print("Vous etes le visiteur Num : $nbvisites"."
"); // 7.On affiche le compteur à l'écran
j'aurais mis plutôt :
1) echo 'Vous êtes le visiteur Num :'.$nbvisites.'
';
2) un coup tu concatènes, un coup tu concatènes pas, un coup tu utilises print, un coup tu utilises echo... bref
Faut être plus régulier
Sinon rien à dire et rien à noter
kiki
9 janv. 2007 à 09:55
c plus un tutorial qu'une source utilisable telle quelle
m'enfin
kiki