Page 1 sur 1

Compteur évoluant de page en page ?

Posté : 25 août 2008, 16:34
par chrbar
Salut,

J'aimerais reproduire l'effet du compteur présent en haut de la page http://www.ensembleverslavenir.ca/fr/accueil/

Le code pour le calcul est simple (voir ci-dessous), mais il doit y avoir un système de cookies (et/ou une fonction ASP) qui permet de faire continuer le compteur de page en page (idem si on effectue un rafraîchissement de la page).

Un ID doit se créer à chaque fois que le navigateur ouvre une session sur le site.
Le compteur repart à zéro lorsque le navigateur quitte le site.

Auriez-vous une idée de comment re-coder le même système mais en PHP?
Merci beaucoup :D
Chris

Code : Tout sélectionner

<div class="counter"><span id="counter">8.15</span> tonnes</strong> de gaz à effet de serre ont été émis au Québec depuis le début de votre visite.</div> <script language="JavaScript" type="text/javascript"> var sTotal = 0; function gazCount(){ sTotal=sTotal+(0.1); document.getElementById("counter").innerHTML = r2(sTotal*2.91); //document.getElementById("counter").innerHTML = r2(sTotal); setTimeout("gazCount();", 100); } function r2(n){ ans = n * 1000 ans = Math.round(ans /10) + "" while (ans.length < 3) {ans = "0" + ans} len = ans.length ans = ans.substring(0,len-2) + "." + ans.substring(len-2,len) return ans } gazCount(); </script>

Posté : 25 août 2008, 17:14
par _activmik
Ce qui est sûr c'est que personne ici ne va re-codé ce site pour toi.

Par contre si tu fais une petite recherche du côté des $_SESSION ou $_COOKIE tu trouveras sûrement ton bonheur ;)

Posté : 25 août 2008, 18:26
par @rthur
Bonjour,

Le principe est de noter dans un cookie ou une session la date (le timestamp sera probablement le plus simple) à laquelle le visiteur est arrivé sur le site.
Concrètement, quand un visiteur charge une page tu regardes si il a le cookie:
- si NON, tu crées un cookie en y mettant le timestamp actuel (qui correspond au moment où il s'est connecté pour la première fois sur ton site)
- si OUI, tu lis la valeur du cookie et tu lance ton calcul

Posté : 25 août 2008, 21:05
par AB
Tu ne pourras pas reproduire le compteur qui s'incrémente en direct avec uniquement du php. Pour cette fonctionnalité il te faut utiliser javascript.
Tu peux éventuellement sous-traiter certaines tâches (envoie de cookie etc.) en php, mais tu ne trouveras pas de code php qui se suffise à lui-même pour reproduire l'ensemble du script JS.
Donc à moins d'avoir besoin de php par ailleurs, pourquoi ne pas tout faire en javascript :-k

Posté : 25 août 2008, 21:09
par Sékiltoyai
Euh, tout simplement parce qu'il faut transférer le compteur de page en page…

Posté : 26 août 2008, 04:57
par AB
Euh, tout simplement parce qu'il faut transférer le compteur de page en page…
Tu veux absolument utiliser des sessions ?
Mais euh... je me suis laissé influencer par l'exemple d'@rthur ... si le compteur n'est pas stratégique on peut passer sa valeur dans un cookie et donc alors tout faire en javascript.

Pour une simple indication, cela peut être suffisant.

Maintenant si effectivement la valeur de compteur à une importance stratégique ou doit passer sur les navigateurs ayant désactivés les cookies, il est indispensable de l'enregistrer dans une session plutôt que dans un cookie.

Enfin qu'on utilise un cookie ou une variable de session, @rthur a donné la bonne logique.