Probleme ecrire compteur

Rechercher

Probleme ecrire compteur

Par zmaped  -  9 reponses  -  Le 07/12/2009 20:47  -  Editer  - 

Bonsoir

Bon voila, mon code php fonctionne nikel et tout

j'ai crée un formulaire uniquement avec le champ texte, je rentre un nombre et sa me l'ecrit dans un fichier

compteur.txt

Seulement voila :

Si j'ecrit 1245852 en premier puis de nouveau je reecri 745 cela va me mettre 7455852.

Il va me rajouter les nombre precedent hors je voudrais que

Je rentre un nombre, sa ecrit dans le formulaire

Je refait la manip avec un nombre different,** sa efface se qu'il ya dans le formulaire, **puis ecrit la nouvelle valeur

( j'ai fait fseek pour qu"il revient a la ligne a chaque fois)

<?php
$ratastrop = ($_POST['chiffre']);         //on recupere la valeur rentrer dans mon formulaire
$monfichier = fopen("compteur.txt", "r+"); // on ouvre le compteur
$chiffre = fgets ($monfichier); // on le lit
fseek ($monfichier, 0); // on va a la ligne
fputs($monfichier, $ratastrop); // on ecrit la valeur dans le compteur
fclose($monfichier); // on ferme le compteur
echo "$chiffre"; // on affiche se qu''on a mis
?>

 

 

 

Réponses apportées à cette discussion

Par Cyrano  -  Le 07/12/2009 21:50  -  Haut de page  - 

Salut Zmaped,

on code affiche logiquement la précédente valeur puisque ton echo() affiche ce que tu as récupéré dans le fichier AVANT la ré-écriture de la nouvelle valeur.

 
Par zmaped  -  Le 07/12/2009 22:00  -  Haut de page  - 

Oui d'accord je le sais sa, mais si tu veut je voudrais que la valeur s'efface du compteur et réecrive la nouvelle.

 
Par Cyrano  -  Le 07/12/2009 22:15  -  Haut de page  - 

Ok, mais dans ce cas, comment est généré ton formulaire ?

Il faut qu'il soit généré après cette phase, que tu réinitialise ta variable avec la nouvelle valeur et que tu insères cette variable dans l'attribut value de ton champ texte.

Là ton code ne montre que le traitement de la valeur, pas le reste du montage de ton formulaire.

 
Par zmaped  -  Le 07/12/2009 23:24  -  Haut de page  - 

Je te remercie pour l'attention que tu porte a m'aider

Alors voila mon formulaire

<form action="cible.php" method="post">
<p>
<input type="text" name="chiffre" /> <input type="submit" value="Valider" />
</p>
</form>

Donc en faire dans le value du champ texte c'est a dire :

<input type="text" name="chiffre" value="$ratastrop />

et sa devrait fonctionner ?

 

 
Par Mimosa  -  Le 08/12/2009 16:52  -  Haut de page  - 

Pourquoi tu lis dans ton fichier alors que tu n'as pas encore écrit dedans ?

Ton fgets ne devrait-il pas être après fputs ?

Sinon pour vider ton fichier tu peux faire comme-ci :

 

<?php
$ratastrop = ($_POST['chiffre']); //on recupere la valeur rentrer dans mon formulaire
$monfichier = fopen("compteur.txt", "r+"); // on ouvre le compteur
$chiffre = fgets ($monfichier); // on le lit
while(!feof($monfichier)){
fputs('');
}
fseek ($monfichier, 0); // on va a la ligne
fputs($monfichier, $ratastrop); // on ecrit la valeur dans le compteur
$chiffre = fgets ($monfichier); // on le lit
fclose($monfichier); // on ferme le compteur
echo "$chiffre"; // on affiche se qu''on a mis
?>
 
Par zmaped  -  Le 08/12/2009 20:44  -  Haut de page  - 

OK je te remerci

Je vais tester cela

Il faudra le rajouter dans le tuto du site

 
Par zmaped  -  Le 08/12/2009 22:01  -  Haut de page  - 

Cela ne fonctionne pas

 
Par Mimosa  -  Le 10/12/2009 16:49  -  Haut de page  - 

Salut,

Tu as une autre solution qui est de supprimer le fichier.

<?php
if(file_exists('compteur.txt')){
  $monfichier1 = fopen('compteur.txt', 'a+'); // on ouvre le compteur
  fseek ($monfichier1, 0); // on va a la ligne
  $chiffre1 = fgets ($monfichier1); // on le lit
  fclose($monfichier1); // on ferme le compteur
  unlink('compteur.txt'); // on supprime le fichier
}
$monfichier = fopen('compteur.txt', 'a+'); // on ouvre le compteur
$ratastrop = ($_POST['chiffre']); //on recupere la valeur rentrer dans mon formulaire
fputs($monfichier, $ratastrop); // on ecrit la valeur dans le compteur
fseek ($monfichier, 0); // on va a la ligne
$chiffre = fgets ($monfichier); // on le lit
fclose($monfichier); // on ferme le compteur
echo '<p>Le chiffre est : '.$chiffre.' et avant était de : '.$chiffre1.'</p>'; // on affiche se qu''on a mis
?>

Dans cette exemple, tu testes si le fichier existe. Si il existe, tu récupére la valeur qu'il contient et tu le supprime. Puis tu le recréer afin d'écrire dedans.

Il y a peut-être plus simple mais je ne connais pas trop. Si tu n'as pas besoin de lire la valeur du fichier avant, tu peux le supprimer directement.

 

 
Par zmaped  -  Le 11/12/2009 23:43  -  Haut de page  - 

Sa fonctionn je te remerci

 

Ajouter une réponse à la discussion

Seuls les membres connectés sont autorisés à poster dans les forums !

Identifiez-vous
Join |  ID/MDP? |