Créer un compteur d'accès avec JavaScript

man -  
PhP Messages postés 1774 Statut Membre -
je voudrais créer un compteur d'accès pour mon site web en utilisant JavaScript. Seulement voila j'y arrive pas.
j'ai créer une fonction de la façon suivante:
dans la partie HEAD
<script language=javascript>
function visiteurs(){
var visiteur
visiteur=visiteur+1
document.write("vous etes le"+visiteur+"visiteur")
}
</script>
dans la partie BODY:
<script language= javascript>
visiteurs();
</script>

au lieu du compteur qui s'incrémente je reçoit NaN
je comprend le sens du message mais je sais comment y remédier

de l'aide je vous en prie.
A voir également:

1 réponse

PhP Messages postés 1774 Statut Membre 606
 
Salut Man

NaN signifie "Not a Number" c.à.d la variable en question, ici visiteur, n'est pas un nombre sous-entendu il n'est pas possible de l'employer dans une expression mathématique qlconque.

En fait ce qui pose pb c'est que tu n'as pas initialisé ta variable
visiteur. Elle est "undefined" pour JS.
Et cela provoque une erreur lorsque JS essaie de calculer "visiteur+1"

Si tu remplaces :
var visiteur

par :
var visiteur=0 // visiteur est un nbre maintenant

tu n'auras plus d'erreur de type par contre ton code ne va pas fonctionner comme tu t'y attends ...
Car faire un compteur n'est pas aussi simple ! :(

Je m'explique :

Ton code va TOUJOURS afficher : "Vous êtes le 1 visiteur"

Pourquoi :

Il faut bien comprendre qu'à chaque fois que tu charges ou que tu recharges une page HTML toutes ses variables (aussi bien celles que le navigateur met en place que celles que tu déclares avec JS ) sont perdues et réinitialisées et tout le code JS (hors fonction) est
réexécuté.

Donc ici visiteur va être réinitiliser à zéro puisque cela fait partie du code JS. Ne pas l'initiliser n'y changera rien tu auras simplement ton erreur "NaN" !

Ce qu'il faut c'est trouvé un moyen de sauvegarder la valeur de visiteur entres les différents appels à ta page : hé bien il n'y a pas 36 solutions tu doit l'enregistrer qlque part sur le serveur (et pas chez le client !) , la relire à chaque fois,
l'incrémenter puis la réécrire tjrs sur le serveur bien sûr.

Par cela tu peux :
- l'enregistrer dans un fichier sur le serveur
- l'enregistrer dans un champ si tu utilises une base de données
(c'est ce que je fais avec Php/MySQL)
- faire un lien vers un site qui va gérer pour toi le compteur (je sais pas trop ccm mais ca se fait ...)


Bon courage

@+
Philippe
1