UTILISATION DES FICHIERS *.TXT

kiki2sirom Messages postés 153 Date d'inscription mardi 17 août 2004 Statut Membre Dernière intervention 23 décembre 2010 - 9 janv. 2007 à 09:55
juki_webmaster Messages postés 947 Date d'inscription mercredi 19 novembre 2003 Statut Membre Dernière intervention 5 avril 2008 - 10 janv. 2007 à 00:42
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/41024-utilisation-des-fichiers-txt

juki_webmaster Messages postés 947 Date d'inscription mercredi 19 novembre 2003 Statut Membre Dernière intervention 5 avril 2008 3
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és 39 Date d'inscription samedi 7 janvier 2006 Statut Membre Dernière intervention 13 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és 1293 Date d'inscription mardi 9 novembre 2004 Statut Membre Dernière intervention 21 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és 121 Date d'inscription vendredi 31 mars 2006 Statut Membre Dernière intervention 30 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és 153 Date d'inscription mardi 17 août 2004 Statut Membre Dernière intervention 23 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és 153 Date d'inscription mardi 17 août 2004 Statut Membre Dernière intervention 23 décembre 2010
9 janv. 2007 à 09:55
comment dire...

c plus un tutorial qu'une source utilisable telle quelle

m'enfin

kiki
Rejoignez-nous