écraser un message de manière qu'il n'y ai que le dernier

Fermé
mariang Messages postés 30 Date d'inscription lundi 21 mars 2011 Statut Membre Dernière intervention 24 avril 2016 - 4 janv. 2016 à 17:07
mariang Messages postés 30 Date d'inscription lundi 21 mars 2011 Statut Membre Dernière intervention 24 avril 2016 - 4 janv. 2016 à 17:54
Bonjour,

j'ai trouvé un tuto pour écrire un message sur une page de mon site sans base de donnée.

Le tuto est pour un livre d'or.

hors, je ne veux pas de livre d'or...

Sur ma page, on va dire que je veux donner une info, et que la précédente s'efface dès la nouvelle info.

là, est une partie du code pour un livre d'or, j'aimerai savoir ce que je dois supprimer ou modifier pour que le message soit "écrasé"

 // Si ok on ouvre en écriture-enregistrement du fichier message.txt
$verif=@fopen($commentaires,"r+");

// On analyse les anciennes données et on les stocks
$stock=@fread($verif,filesize($commentaires));

// On met la date dans une variable
$date=date ("d/m/Y à H:i");

// On paramètre le tout dans la variable $opinion
$opinion="<b>".$pseudo."</b> a écrit le : ".$date."<br />\n".$message."<br />\n<hr />";

// On remet le curseur du fichier en début de ligne
rewind($verif);

// On insère le nouveau commentaire
fputs($verif,$opinion." \n".$stock);

// On clore le fichier
fclose($verif);

// On affiche le tout
readfile($commentaires);


En premier lieu, j'ai pensé à supprimer $stock, pensant que cela évitait de remettre l'info précédente
puis j'ai supprimé "r+" du $verif=@fopen($commentaires,"r+");

et aussi le \n".$stock dans fputs($verif,$opinion." \n".$stock);

mais cela ne fonctionne pas, j'ai toujours les messages qui s'accumulent.

ok, je fais du "bidouillage" étant donné que je ne comprends pas grand chose...

merci pour votre aide

2 réponses

Pitet Messages postés 2826 Date d'inscription lundi 11 février 2013 Statut Membre Dernière intervention 21 juillet 2022 524
4 janv. 2016 à 17:31
Salut,

Une solution possible est d'utiliser le mode 'w+' en 2e paramètre de fopen permettant ainsi de supprimer le contenu du fichier à l'ouverture de celui-ci.

On peut du coup supprimer l'utilisation de la variable $stock et de l'instruction rewind :

        // Si ok on ouvre en écriture-enregistrement du fichier message.txt
        $verif=@fopen($commentaires,"w+");
               
        // On met la date dans une variable
        $date=date ("d/m/Y à H:i");
       
        // On paramètre le tout dans la variable $opinion
        $opinion="<b>".$pseudo."</b> a écrit le : ".$date."<br />\n".$message."<br />\n<hr />";
       
        // On insère le nouveau commentaire
        fputs($verif,$opinion);
       
        // On clore le fichier
        fclose($verif);
       
        // On affiche le tout
        readfile($commentaires);


Bonne journée
0
mariang Messages postés 30 Date d'inscription lundi 21 mars 2011 Statut Membre Dernière intervention 24 avril 2016 1
4 janv. 2016 à 17:54
ben voilà, ça marche

grand merci

bonne fin de journée
0