Création de compteur temps réel

Fermé
alfa2401 - 14 mars 2012 à 19:52
Fallentree Messages postés 2309 Date d'inscription mercredi 25 février 2009 Statut Membre Dernière intervention 22 juillet 2019 - 15 mars 2012 à 23:40
Bonjour à tous,

Je vais faire simple : je ne connais rien au langage informatique et je n'ai absolument pas le temps de consacrer des études de livres ou de site pour créer l'application que je recherche. Alors voilà, je désirerais savoir (et je sais que c'est gonflé) si une âme charitable pouvait me créer le code HTML permettant de faire apparaître un compteur dit "temps réel" qui permettrait d'afficher un chiffre tous les trois jours. Je détaille par un exemple : le lundi il faut que le compteur affiche "1", le mardi et le mercredi aussi. Le jeudi, il faut qu'il affiche "2", le vendredi et le samedi aussi. Le dimanche, il faut qu'il affiche "3", et ainsi de suite.

Je sais que je vais avoir du mal à trouver mon bonheur mais voilà pourquoi c'est indispensable. Nous avons une association qui dénonce les maltraitances conjugales et ce compteur sert à comptabiliser le nombre de femmes décédées (une tous les trois jours) en temps réel, afin de faire prendre conscience de la gravité de la situation. En tant qu'association nouvelle, nous n'avons pas les moyens financiers de payer un informaticien. Voilà pourquoi nous recherchons un samaritain.

Merci à tous pour votre aide et votre attention.
A voir également:

3 réponses

Géca Messages postés 799 Date d'inscription samedi 29 novembre 2003 Statut Contributeur Dernière intervention 29 juin 2015 106
14 mars 2012 à 19:59
Bonjour,

J'ai une question concernant l'algorithme que vous souhaitez. Vous dites :
>le lundi il faut que le compteur affiche "1", le mardi et le mercredi aussi. Le jeudi, il faut qu'il affiche "2", le vendredi et le samedi aussi. Le dimanche, il faut qu'il affiche "3"
Et le lundi qui suit on affiche quoi ? 3, ou ça repart sur 1 ?

Ne souhaitez-vous pas un compteur qui s'incrémente de 1 tous les trois jours ?
--
0
Merci de votre réponse, il faut simplement que les chiffres continuent de défiler : 3, 4, 5 etc. jusqu'à ce que nous supprimions le code html du site. En fait, il faut que le nombre qui sera indiqué puisse montrer le nombre de décès entre la mise en place de notre action (soit un décès) jusqu'à l'aboutissement de notre projet censé enrayer ce fléau. S'il dure 3 mois, au bout de ce temps, il faut que le compteur affiche 30 décès (1 décès tous les 3 jours durant 3 mois = 30 décès). En clair, le compteur doit tourner en permanence à la vitesse d'un décès tous les 3 jours.
0
Pardon, j'ai oublié de vous préciser que le jour n'avais pas d'importance, le lundi était un exemple dans l'éventualité où nous aurions lancé le code un lundi, mais le compteur peut démarrer un autre jour de la semaine. L'idéal serait qu'il démarre dès la publication du site en ligne. Merci à vous.
0
Bonsoir,
Il y a 2 solutions, je t'explique la 1ère basée sur une table (pour l'exemple nommée table_compteur) de la base de données pour conserver le temps de départ et le nombre de décès, donc 2 colonnes :
- colonne 1 (temps_depart) de type timestamp
- colonne 2 (nbre_deces) de type integer

Le code de la fonction :
function afficheCompteur() {  
 $requete = mysql_query("SELECT temps_depart,nbre_deces FROM table_compteur");  
 $result = mysql_fetch_assoc($requete);  
 $temps_ecoule = time() - $result['temps_depart'];  
 if($temps_ecoule > 259200) {  
  mysql_query("UPDATE table_compteur SET temps_depart+259200, nbre_deces+1");  
  return $result['nbre_deces']+1;  
 } else {  
  return $result['nbre_deces'];  
 }  
 mysql_free_result($result);  
}

Dans la page HTML, à l'endroit où doit apparaître le compteur :
<span style="font-size: 1em; font-weight: bold; color: #bb010a;"><?php echo afficheCompteur(); ?></span>


Explications :
1. La fonction cherche dans la table le temps de départ et le nombre de décès.
2. Elle compare ce temps avec le temps écoulé depuis (en secondes).
3. Si le temps écoulé est supérieur à 259200, ce qui équivaut à 60s x 60mn x 72h (donc 3 jours), on incrémente le temps de départ de 259200 et le nombre de décès de +1 dans la table et on retourne le nombre de décès (valeur de $result['nbre_deces']+1).
4. Si le temps écoulé est inférieur à 259200, on retourne le nombre de décès initialement contenu dans la table (valeur de $result['nbre_deces']).

La seconde solution serait de ne pas utiliser une base de données mais un fichier texte (par exemple fichier_compteur.txt) dans lequel on conserve le temps de départ et le nombre de décès et la fonction sera modifié pour aller chercher les données dans le fichier et non plus dans la table table_compteur.
Je n'ai pas pris le temps de tester mais ça devrait fonctionner, sinon apporter quelques modifications et/ou corrections...

Bien entendu dans le cas de la 1ère solution, il faut ouvrir une connexion MySQL AVANT d'utiliser la fonction, sinon c'est un warning assuré!
0
Merci beaucoup, vraiment, pour ton aide.

Alors effectivement, j'ai besoin d'explications pas à pas. Voilà, le logiciel du site est Web Acappella. Il me permet d'ouvrir une zone HTML (dimensionable à souhait). J'ai entré le code html que tu m'as donné à sa place, j'ai enregistré le code de la fonction dans le bloc-note en enregistrant le fichier sous le nom de table_compteur.txt et j'ai ajouté le lien à ma zone html. Le résultat affiché :
DEBUG MODE
HTML code desactived

A mon avis, j'ai loupé une étape.
0
Déjà je n'utilise pas Web Acapella, j'écris mes sources toujours avec mes petits doigts avec Notepad++

D'autre part, tu n'as pas du tout compris, mais c'est surtout par ignorance de ce qu'est du HTML, du PHP, l'utilisation d'une fonction, comment créer et enregistrer un fichier grâce à fopen(), fgets(), fwrite(), etc...

Il va être difficile de tout mettre en place tout ça à distance par message interposé...
Je ne peux pas t'expliquer comment fonctionne la manipulation des fichiers avec PHP, ce serait trop long et quand bien même, tu n'as pas de notions de programmation, je ne ferais que t'embrouiller encore plus!

Dans le même temps, ce que je t'ais procuré fonctionne avec une base de données, mais là aussi, je crains que tes lacunes dans la création d'une table et l'utilisation d'une base de données te fassent défaut... Je ne vois pas de solution miracle pour "débloquer" ton problème et j'en suis vraiment désolé!
0
Excuses-moi, c'est vrai, comme je l'ai dis au début, je n'y connais rien. Par ailleurs, peut-être qu'avec des imprim' écran cela pourrait fonctionner. Je te donne mon adresse mail si tu veux ? J'attends ton accord.
0
Géca Messages postés 799 Date d'inscription samedi 29 novembre 2003 Statut Contributeur Dernière intervention 29 juin 2015 106
14 mars 2012 à 23:26
je ne pense pas avoir autant de compétances que ReDLoG,mais ça me semble un peu disproportionné d'utiliser une base de données pour faire un compteur. Un fichier temporaire serait suffisant, non ?
0
C'est bien pour ça que j'ai bien donné 2 solutions mais que je n'ai décrit qu'une méthode pour éviter de noyer dans de multiples explications. A partir du moment où l'on sait utiliser une base de données, créer des tables, utiliser du langage SQL, écrire des fonctions, on doit AUSSI être capable de manipuler les fichiers avec PHP. Il est très facile de modifier la fonction ci-dessus pour qu'elle cherche les infos dans un fichier texte, mais pour ça, il faut savoir (je me répète...) utiliser les fonctions natives de PHP pour la manipulation de fichier, entre autres, fopen(), fgets(), fwrite(), etc...
0
Bonsoir,
Voici la version compteur avec support de fichier, mais avant voici les pré-requis :
1. Version testée sous PHP 4.3.10
2. Il faut créer un fichier texte (à partir du bloc-notes ou équivalent) nommé "compteur.txt" dans lequel tu auras une ligne rédigée comme ceci => 1331848649-1 ce qui se décompose ainsi :
1331848649 est le timestamp obtenu par la fonction PHP time(), le tiret (-) sert uniquement de séparateur et 1 correspond au nombre de décès de départ du compteur
3. la fonction afficheCompteur() doit être enregistrée au début de la page HTML dans laquelle devra apparaître le compteur et AVANT la balise Doctype comme ceci par exemple :
<?php
function afficheCompteur() {
	$file = fopen("compteur.txt", "r");
	$line = fgets($file);
	$element = explode("-", $line);
	$temps_reference = $element[0];
	$nbre_deces = $element[1];
	fclose($file);

	$temps_ecoule = time() - $temps_reference;

	//259200 = 3 jours exprimé en secondes
	if($nbre_deces <= 30) {
		if($temps_ecoule > 60) {
			$handle = fopen("compteur.txt", "w");
			$nbre_deces += 1;
			$newline = time()."-".$nbre_deces;
			fwrite($handle, $newline);
			fclose($handle);
			//echo "Nouvelle ligne: ".$newline." / Temps de référence : ".$element[0]." / ".$nbre_deces." décès!";
			echo $nbre_deces." décès.";
		} else {
			//echo "Temps de référence : ".$temps_reference." / ".$nbre_deces." décès!";
			echo $nbre_deces." décès.";
		}
	} else {
		echo "Votre compteur est arrivé à son terme...";
	}
}
?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head>
	<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
	<title>&bull; TEST - Compteur de décès &bull;</title>
</head>

<body>
<p><?php afficheCompteur(); ?></p>
</body>
</html>


IMPORTANT : Il faut que la page HTML où doit apparaître le compteur (exemple ci-dessus) doit OBLIGATOIREMENT être enregistré avec l'extension .php et non pas .html sinon ça ne fonctionnera pas!
Il faut également que ton serveur d'hébergement supporte le langage PHP!
Le fichier compteur.txt doit être OBLIGATOIREMENT au même niveau dans l'arborescence des fichiers que la page où doit apparaître le compteur!
Tu peux placer n'importe où entre la balise <body> et </body> cette ligne :
<p><?php afficheCompteur(); ?></p>

Et personnaliser avec du CSS l'apparence de ce qui sera affiché à l'écran!

Bonne continuation...
0
Fallentree Messages postés 2309 Date d'inscription mercredi 25 février 2009 Statut Membre Dernière intervention 22 juillet 2019 208
15 mars 2012 à 23:40
Sans emulateur PHP, ou autre programme au niveau serveur c est impossible de le gerer depuis l interface web.
par contre des compteurs herbergé ca existait. maintenant est ce qu ils en font encore le commerce????
0