Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2775 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Probleme de POST lors de l'actualisation de ma page ??

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Probleme de POST lors de l'actualisation de ma page ??

n°1408018
rastamatt
Posté le 17-07-2006 à 12:37:58  profilanswer
 

Bonjour,
 
Je viens de créer une page, pour permettre aux visiteurs de mon site de commenter mes news. Ma partie commentaire fonctionne, on peut poster un commentaire, le commentaire est transmis a ma bdd et l'affichage se fait sans probléme.
Par contre, lorsque que l'on fait actualiser la page (soit sur le bouton "actualiser" du navigateur, soit F5), le commentaire qui vient d'être tapé, et une nouvelle fois inséré dans ma bdd et donc affiché sur ma page.
Le champ POST garde sa valeur.
 
Voici le message que j'obtiens lorsque j'actualise ma page :
 
"La page que vous tentez de voir contient des données envoyées par POST. Si vous renvoyez les données, toute action entreprise par la page Web (telle qu'une recherche ou un achat en ligne) sera répétée. Pour envoyer à nouveau les données, cliquez sur OK, sinon cliquez sur Annuler."
 
 
Quelqu'un aurait-il une solution pour éviter d'avoir une nouvelle entrée dans ma base de données a chaque fois que je fais actualiser ??? Comment faire pour vider les champs POST ou interdire d'actualiser ma page ???
 
Merci d'avance pour vos réponses
 
Voici la partie de mon script concerné :
 
 
<?
 
if (isset($_POST['message']) AND isset($_POST['nom']))
{
if($_POST['message'] != '' AND $_POST['nom'] != '')
{
$datedujour = date('d-m-Y');
$pseudo =  stripslashes(htmlentities($_POST['nom'], ENT_QUOTES));
$message =  stripslashes(htmlentities($_POST['message'], ENT_QUOTES));
$message = nl2br($message);
$email = htmlentities($_POST['email'], ENT_QUOTES);
$idcomment = $_POST['idcomment'];
 
mysql_query ("INSERT INTO matable VALUES('', '" . $datedujour ."', '" . $pseudo . "', '" . $email . "','" . $message . "', '" . $idcomment . "')" )or die (mysql_error()); /* Là, on entre juste les données dans une nouvelle entrée de la table SQL...*/
 
?>
<div id="conteneur3"> //Voici la partie que j'avais oublié !!!
<p2><em><strong>Le <? echo $datedujour ?> par <? echo $pseudo; ?></strong></em> <br /></p2> <p4><? echo $message; ?></p4>
</div>
<?
 
echo "Merci d'avoir commenté !";
} else {
echo "Les champs nom et message sont obligatoires !!!";
}
}
?>
<a name="ancre_1"></a>
<h2 class="Style2">Commentez la news : <q><?php echo $_GET['titrenews']; ?></q></h2>
 
 
 
<form method="post" >
 
<input type="hidden" name="idcomment" value="<?php echo $_GET['idnews']; ?>" />
<table width="670" border="0">
  <tr>
    <td width="166"><label> </label>
        <div align="right" class="Style7"> Nom : </div></td>
    <td width="488"><input type="text" name="nom" /></td>
  </tr>
  <tr>
    <td><label></label>
        <label> </label>
        <div align="right" class="Style5">Email (facultatif) : </div>
      <label></label></td>
    <td><input type="text" name="email" /></td>
  </tr>
  <tr>
    <td valign="top"><div align="right" class="Style5">Message : </div></td>
    <td><textarea name="message" rows="5" cols="50"></textarea></td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td><div align="center">
      <input name="submit" type="submit" value="Valider votre message" />
    </div></td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td><div align="center"></div></td>
  </tr>
</table>
</form>
 
<?php mysql_close(); ?>

mood
Publicité
Posté le 17-07-2006 à 12:37:58  profilanswer
 

n°1408019
afbilou
pouet your life
Posté le 17-07-2006 à 12:44:13  profilanswer
 

Apres insertion de tes données en base il te faut réaliser une redirection avec la fonction header() vers une page qui te convient : la page qui permet de voir la news et les commentaires par exemple.
 
Le serveur donnera la page au navigateur depuis cette nouvelle requete HTTP etablie sans les données POST.

n°1408032
rastamatt
Posté le 17-07-2006 à 13:14:49  profilanswer
 

En fait, je raffiche dans ma news et mes commentaires dans la même page et ça ça fonctionne nickel. Le commentaire que l'on vient de rentrer s'affiche directement sur ma page. Ca risque d'etre tres compliqué pour moi si j'envoi vers une autre page.  
Il n'existe pas un moyen d'interdire l'actualisation d'une page ?? ou de vider les post sans envoyer dans une autre page ?

n°1408038
afbilou
pouet your life
Posté le 17-07-2006 à 13:20:11  profilanswer
 

news.php

Code :
  1. * on affiche la news
  2. * on affiche les commentaires
  3. * on affiche le formulaire de post
  4. <form action="post.php" method="post" >
  5. </form>


 
post.php

Code :
  1. * on insere en base de données
  2. * on redirige vers news.php
  3. header('news.php');


 
Voila en gros le principe.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Probleme de POST lors de l'actualisation de ma page ??

 

Sujets relatifs
[C# .net] Faire une recherche dans une page webProbleme de création de requête SQL un peu compliqué !
[xml-xsl] Probleme de structure de fichier xslle php et allopass(protection de page)
Probleme insert [PHP/SQL]problème définition de variables
Problème avec les textures en openglprobleme sur mon site...
Probleme fsockopenprobleme forum php
Plus de sujets relatifs à : Probleme de POST lors de l'actualisation de ma page ??


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR