OVH Cloud OVH Cloud

compteur

8 réponses
Avatar
Sebastien
je débute en PHP et j'assaie de créer qql trucs, mais la je coince, je
trouve pas de reponse à ma question :
<?php
$fp = fopen("compteur.txt","r+");
$nbvisites = fgets($fp,11);
$nbvisites++;
fseek($fp,0);
fputs($fp,$nbvisites,11);
fclose($fp);
print("$nbvisites visiteurs");
?>

pq le compteur affiche d'abord 1 ensuite 100000001, 100000002,
10000003.... ect !Il devrait normalement ecrire ,1 2 3 4 ??

merci d'avance
Séb

8 réponses

Avatar
Vincent Lascaux
<?php
$fp = fopen("compteur.txt","r+");
$nbvisites = fgets($fp,11);
$nbvisites++;
fseek($fp,0);
fputs($fp,$nbvisites,11);
fclose($fp);
print("$nbvisites visiteurs");
?>

pq le compteur affiche d'abord 1 ensuite 100000001, 100000002,
10000003.... ect !Il devrait normalement ecrire ,1 2 3 4 ??


Ca marche chez moi... Est ce que tu es sur que c'est exactement le code que
tu utilises ?

--
Vincent

Avatar
Paul Delannoy
Sebastien a écrit:
je débute en PHP et j'assaie de créer qql trucs, mais la je coince, je
trouve pas de reponse à ma question :
<?php
$fp = fopen("compteur.txt","r+");
$nbvisites = fgets($fp,11);
$nbvisites++;
fseek($fp,0);
fputs($fp,$nbvisites,11);
fclose($fp);
print("$nbvisites visiteurs");
?>

pq le compteur affiche d'abord 1 ensuite 100000001, 100000002,
10000003.... ect !Il devrait normalement ecrire ,1 2 3 4 ??


Il ne fait pas cela chez moi.... Si on a 1 dans le fichier, on a 2,3,...
par contre si le fichier est vide, pas d'incrément... Le pb tourne donc
sans doute autour de la conversion string/entier...

merci d'avance
Séb
de rien


Avatar
Sebastien
Sebastien a écrit:

je débute en PHP et j'assaie de créer qql trucs, mais la je coince, je
trouve pas de reponse à ma question :
<?php
$fp = fopen("compteur.txt","r+");
$nbvisites = fgets($fp,11);
$nbvisites++;
fseek($fp,0);
fputs($fp,$nbvisites,11);
fclose($fp);
print("$nbvisites visiteurs");
?>

pq le compteur affiche d'abord 1 ensuite 100000001, 100000002,
10000003.... ect !Il devrait normalement ecrire ,1 2 3 4 ??



Il ne fait pas cela chez moi.... Si on a 1 dans le fichier, on a 2,3,...
par contre si le fichier est vide, pas d'incrément... Le pb tourne donc
sans doute autour de la conversion string/entier...

merci d'avance
Séb


de rien
et est-ce que tu aurai une solution concrète (fonction à ajouter) pour

résoudre mon probleme ??


Avatar
Sebastien
je débute en PHP et j'assaie de créer qql trucs, mais la je coince, je
trouve pas de reponse à ma question :
<?php
$fp = fopen("compteur.txt","r+");
$nbvisites = fgets($fp,11);
$nbvisites++;
fseek($fp,0);
fputs($fp,$nbvisites,11);
fclose($fp);
print("$nbvisites visiteurs");
?>

pq le compteur affiche d'abord 1 ensuite 100000001, 100000002,
10000003.... ect !Il devrait normalement ecrire ,1 2 3 4 ??

merci d'avance
Séb
jai reussi à masquer le probleme avec l'implatation de substr_replace

mais il ya un probleme de fond que j'aimerai qd meme resoudre par
curiosité !!!
merci d'avance !

Avatar
Sebastien
<?php
$fp = fopen("compteur.txt","r+");
$nbvisites = fgets($fp,11);
$nbvisites++;
fseek($fp,0);
fputs($fp,$nbvisites,11);
fclose($fp);
print("$nbvisites visiteurs");
?>

pq le compteur affiche d'abord 1 ensuite 100000001, 100000002,
10000003.... ect !Il devrait normalement ecrire ,1 2 3 4 ??



Ca marche chez moi... Est ce que tu es sur que c'est exactement le code que
tu utilises ?

Oui c'est exactement celui là !!



Avatar
Vincent Lascaux
jai reussi à masquer le probleme avec l'implatation de substr_replace mais
il ya un probleme de fond que j'aimerai qd meme resoudre par curiosité !!!


Deux choses me viennent à l'esprit : acces concurentiel (mais bon, j'ai
comme un doute, surtout si tu rencontre le probleme dès le deuxieme appel),
ou un bug avec PHP... Quelle version de PHP tu utilises ?

--
Vincent

Avatar
Pierre Maurette
[...]
et est-ce que tu aurai une solution concrète (fonction à ajouter) pour
résoudre mon probleme ??
Salut,

Débutant de quelques jours, j'ai copié/collé votre code qui fonctionne
sans problème. Je ne suis pas à l'aise avec les types des variables en
PHP. Il est possible il me semble que votre problème vienne d'une
définition antérieure de $nbvisites.
Personnellement, et conscientque le code pourrait être plus compact, je
l'ai réécrit comme ça:

<CODE>
if(file_exists($nomficcompteur)){
$fp = fopen($nomficcompteur,"r+");
$nbvisites = fgets($fp,11) + 1;
fseek($fp,0);
}
else{
$fp = fopen($nomficcompteur,"w");
$nbvisites = 1;
}

fputs($fp,$nbvisites,11);
fclose($fp);
</CODE>

ou alors:

<CODE>
$nbvisites = 1;

if(file_exists($nomficcompteur)){
$fp = fopen($nomficcompteur,"r+");
$nbvisites = fgets($fp,11) + 1;
fseek($fp,0);
}

else{
$fp = fopen($nomficcompteur,"w");
}

fputs($fp,$nbvisites,11);
fclose($fp);
</CODE>

La lecture se fait aileurs, par:
<CODE>
if(file_exists($nomficcompteur))
{
echo "[Fichier ".'<strong>'.$nomficcompteur.'</strong>'."
existe]"."<br />";
// Afficher le nombre de visiteurs
$fp = fopen($nomficcompteur,"r");
echo "Nombre de visiteurs : ".fgets($fp,11);
fclose($fp);
}
else
{
echo "[Fichier ".'<strong>'.$nomficcompteur.'</strong>'." absent]";
}
</CODE>

--
Pour répondre directement: enlever une lettre sur deux
wwaannaaddoooo -> wanadoo

Pierre Maurette

Avatar
Sebastien
jai reussi à masquer le probleme avec l'implatation de substr_replace mais
il ya un probleme de fond que j'aimerai qd meme resoudre par curiosité !!!



Deux choses me viennent à l'esprit : acces concurentiel (mais bon, j'ai
comme un doute, surtout si tu rencontre le probleme dès le deuxieme appel),
ou un bug avec PHP... Quelle version de PHP tu utilises ?

j'utilise une editeur (ConTEXT v 0.97.6) et j'enregistre en format .php,

jai deja essaier de l'enregistrer en .php3 au cas ou on sait jamais ;) !!