Double compteur dans un fichier texte

Consultez la formation à Google Analytics de WebRankInfo / Ranking Metrics

[Alex]
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 15
Inscription: 30 Juin 2004

Double compteur dans un fichier texte

Message le Mer Juil 14, 2004 12:34

Je voudrais un compteur qui enregistre les visiteurs uniques quotidiens sur la deuxième ligne, et les pages vues sur la première. Voici mon code qui ne fonctionne pas.

Code: Tout sélectionner
$fichier = fopen ('compteur.txt', 'r+'); // Ouverture en lecture-écriture
$pagesvues = fgets ($fichier); // Pages vues à la première ligne
$visiteurs = fgets ($fichier); // Visiteurs à la deuxième ligne
$pagesvues++; // On incrémente $pagesvues
fseek($fichier,0); // On remet le pointeur en haut à gauche du fichier
fputs ($fichier, "$pagesvues\n"); // On ecrase l'ancien nombre de pages vues à la première ligne que l'on remplace par le nouveau, puis on va à la deuxième ligne
if (!isset($_COOKIE['visiteur'])) { // Si le visiteur n'est pas déjà passé dans la journée
setcookie ('visiteur', true, time()+86400); // Maintenant on saura qu'il est déjà passé
$visiteurs++; // On incrément $visiteurs
fputs ($fichier, $visiteurs); // On ecrase l'ancien nombre de visiteurs à la deuxième ligne que l'on remplace par le nouveau
}
fclose ($fichier); // Fermeture de la connexion au fichier


Avant de lancer le script pour le première fois, je créé le fichier "compteur.txt" avec ça dedans:
Code: Tout sélectionner
0
0


Après une exécution du script, le résultat fait peur à voir: voici le fichier compteur.txt:
Code: Tout sélectionner
0 "3 petits carrés"
1


Après 2 exécutions, ca empire:
Code: Tout sélectionner
0 "3 petits carrés"
"1 petit carré"


Après, le fichier ne change plus...

Qu'est ce qui ne va pas ?

[Alex]
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 15
Inscription: 30 Juin 2004

Message le Ven Juil 16, 2004 8:24

100 personnes ont lu mon sujet et personne ne peut m'aider ?

Oncle Tom
WRInaute impliqué
WRInaute impliqué
 
Messages: 812
Inscription: 31 Mar 2003

Message le Ven Juil 16, 2004 13:13

Tu vas te prendre la tête pour rien avec un fichier texte.
J'te conseille plutôt de balancer ça dans une base de données.

Fais une table (site_compteurs) à 2 colonnes (visites,pagevues) (je simplifie à mort là, on pourrait faire des choses mieux).

Ensuite sur chaque page (avant l'envoi de ton premier header) mets ça :

Code: Tout sélectionner
//visiteur déjà reconnu (on n'incrémente que les pages)
if( isset($_COOKIE['visiteur']) )
{
mysql_query("UPDATE site_compteurs SET pagesvues = pagesvues + 1;");
}
//"première" visite
else{
setcookie('visiteur',1,time()+86400,'/','www.tonsite.extension');
mysql_query("UPDATE site_compteurs SET pagesvues = pagesvues + 1, visites = visites + 1;");
}

//et on récupère le tout à la fin si on veut l'afficher sur le site
$sql = mysql_query("SELECT visites,pagesvues FROM site_compteurs LIMIT 1;");
$compteurs = mysql_fetch_assoc($sql);


Pour le domaine du cookie (c'est mieux de le mettre, ça risque de ne pas fonctionner sur certains navigateurs), si tu veux que ça soit utilisé sur tout le site, genre si y'a des sous-domaines, vire les www (ça fera ".domaine.extension" par exemple).


Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

Formation recommandée sur ce thème :

Formation Google Analytics : en 2 jours, apprenez comment exploiter l'essentiel des possibilités de l'outil de mesure d'audience de Google. Formation animée par les experts Google Analytics de Ranking Metrics.

Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités