Se connecter / S'enregistrer

Résolu Incrémentation auto d'un message script PHP

Solutions (5)
Tags :
  • Script
  • Programmation
|
Bonjour,

J'ai un petit soucis sur le script de mon livre d'or.En effet à chaque fois que l'on actualise la page, cela créé et incrémente un nouveau message.Je n'arrive pas à trouver de solutions....
Voici le script:




-- On commence le formulaire, pour le resultat on invoquera la page "message.php" gâce à l'attribut action de la balise form -->
<form action="message.php" method="post">

<fieldset> <legend>Votre Nomlegend>
text" name="pseudo" />
fieldset>
<fieldset><legend>Postez un message pour le livre d'orlegend>
<textarea cols="66" rows="6" name="message">textarea>
fieldset>
submit" />
-- On va créer un lien pour ceux qui veulent consulter le livre d'or sans poster dedans -->

form>
-- Notre formulaire est fini on ferme la balise form -->
php
// Pour contrer les spams, on va faire une petite regex
if(preg_match("!http|/|www|\.[A-Za-z]{2,4}!is",@$_POST['message']))
{
echo "<blockquote>Anti-Spams
<em>Les URL et les slashs sont interdits.
Pensez aussi à mettre un espace après un point.em>
blockquote>\n";
exit();
}
// Mettons le (future) fichier dans une variable
$commentaires="messages.txt";

// assignons nos 2 variables du formulaire et on en profite pour les protégers des balises HTML
$pseudo=htmlspecialchars($_POST['pseudo']);
$message=htmlspecialchars($_POST['message']);

// Pensons au retour à la ligne et au stripslashes pour la variable $message
$message=stripslashes(nl2br($message));

// On met en place quelques conditions pour les cellules (nom et message)
// On vérifie avant tout si le fichier existe si ce n'est pas le cas on le crée
if(!is_file($commentaires))
{
$verif=@fopen($commentaires,"w ");
}

// On vérifie que le login ou le message ne soient pas vide


// Après ces quelques vérification d'usage on passe à l'exécution de ce formulaire


// Si ok on ouvre en écirture-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 varialbe
$date=date ("d/m/Y à H:i");

// On paramère le tout dans la variable $opinion
$opinion="".$pseudo." 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);
?>



Merci pour votre aide!
Contenus similaires
Meilleure solution
partage
|
Juste après ta balise <?php, tu mets:
  1. if (!empty($_POST) && isset($_POST['pseudo']) && isset($_POST[message]) ) {

Et juste après fclose($verif);, tu mets:
  1. }


La ligne:
  1. $commentaires="messages.txt";
doit être ramenée entre le <?php et la ligne que je t'ai donnée (if (!empty($_POST) && isset($_POST['pseudo']) && isset($_POST[message]) ) {)
  • Commenter cette solution |
Score
0
òh
òi
|
Meilleure réponse sélectionnée par seize44.
  • Commenter cette réponse |
Score
0
òh
òi
|
Bonjour,

Merci de votre réponse et de votre rapidité, cela fonctionne!
  • Commenter cette réponse |
Score
0
òh
òi
|
Bonjour,

Merci pour la réponse rapide.
C'est vrai je n'avais même pas remarqué qu'il manquait cette partie.
Par contre, c'est un peu bête, je n'arrive pas à retrouver le fichier source du code, donc après quelques essais je ne sais pas trop quoi mettre.
Avez-vous une idée?

Nico.
  • Commenter cette réponse |
Score
0
òh
òi
|
Nonobstant ton code mal copié/collé et n'utilisant pas les balises code, ton souci est très simple: Tu ne vérifies pas que $_POST['message'] et $_POST['pseudo'] ne sont pas vides, donc sitôt que l'on arrive sur ta page, on crée un enregistrement avec des valeurs vides.
  • Commenter cette réponse |

Ce n'est pas ce que vous cherchiez ?

Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS