Php

Résolu
soukaouta Messages postés 39 Date d'inscription vendredi 29 octobre 2010 Statut Membre Dernière intervention 16 novembre 2012 - 29 déc. 2011 à 18:51
soukaouta Messages postés 39 Date d'inscription vendredi 29 octobre 2010 Statut Membre Dernière intervention 16 novembre 2012 - 30 déc. 2011 à 17:27
bonjour tout le monde,
j'ai essaye de faire un blog avec des commentaires en utilisant PHP5,tout se passe bien,l'ajout des message,l'affichage,l'ajout des commentaires,sauf que dans la page des commentaires ,quand je met un refresh un commentaire s'ajout automatiquement dans la base,et ce commentaire est le meme que le dernier commentaire ajouté,s'il n y a aucun commentaire ajouté,c'est le message qui s'ajout a la table commentaire.
j'ai vraiment besoin de votre aide,merci d'avance

5 réponses

cod57 Messages postés 1653 Date d'inscription dimanche 7 septembre 2008 Statut Membre Dernière intervention 11 septembre 2013 19
29 déc. 2011 à 20:11
<?php
session_start();/*toujours en début de fichier*/
//si un comentaire est saisi,on l'enregistre dans la table commentaire

if(isset($_SESSION['commentaire'],$_POST['commentaire']) && $_POST['commentaire']===$_SESSION['commentaire']){
echo 'déjà posté 
'.$_SESSION['commentaire'].'

';
}else{



      if(isset($_POST['commentaire']) && !empty($_POST['commentaire']))
      {
      $_SESSION['commentaire']=$_POST['commentaire'];
      $commentaire = mysql_real_escape_string(htmlspecialchars($_POST['commentaire'])); 
      $commentaire = nl2br($commentaire); // Pour le commentaire, comme on utilise un textarea, il faut remplacer les Entrées par des 

      // On peut enfin enregistrer :o)
      $message_commente=$_GET['message'];//On ne peur pas mettre $_GET['message'] directement dans la requete,ça genere un pble @ amine
      $connexion->exec("insert into commentaire values('','$message_commente','$n','$p','$commentaire')");
      }
      //affichage du resultat
      $req=$connexion->query("select * from commentaire where id_message=".$connexion->quote($_GET['message'],PDO::PARAM_STR)."order by id asc");
      $req->setFetchMode(PDO::FETCH_OBJ);
      while($ligne=$req->fetch())
      {
      echo'';
echo'----
';
echo "" . $ligne->nom."  ".$ligne->prenom ." a commenté:
" . $ligne->commentaire . "

";
      echo', </td>
';
      }
      $req->closeCursor();
      }
      
      
      
}      
?>



Bonne programmation !
3
flasher_13 Messages postés 55 Date d'inscription mercredi 2 février 2005 Statut Membre Dernière intervention 2 avril 2012
29 déc. 2011 à 19:03
Tu utilises peut être des variables passer en paramètres dans l'URL (en GET), sans extrait de ta page on pourras pas grand chose pour toi,
A+
0
cod57 Messages postés 1653 Date d'inscription dimanche 7 septembre 2008 Statut Membre Dernière intervention 11 septembre 2013 19
29 déc. 2011 à 19:31
bonsoir
as tu un code à présenter ?
contre le rafraîchissement par f5 et le double post il y une solution
souvent avec une variable session que tu passes de null à la variable
passé par get ou post si les deux sont égales on ne peut plus poster
...


Bonne programmation !
0
soukaouta Messages postés 39 Date d'inscription vendredi 29 octobre 2010 Statut Membre Dernière intervention 16 novembre 2012
29 déc. 2011 à 19:53
voila le code;
  <?php 
     //connexion a la base de donnee
    require("classes\pdo.class.php");
 //recuperation du post
    $req=$connexion->prepare("select * from message where id=?");//.$connexion->quote(?,PDO::PARAM_STR));
$req->execute(array($_GET['message']));
$ligne=$req->fetch();
if($ligne)
{
    echo'';
echo'----
';
echo "" . $ligne['nom']."  ".$ligne['prenom'] ." a écrit :
" . $ligne['message'] . "

";
echo'
';
}
$req->closeCursor();
//ecrire le commentaire
?>
<form method="post" action="commenter.php?message=<?php echo $_GET['message'];?>">
               commentaire :

            <textarea name="commentaire" rows="8" cols="35"></textarea>

            

<?php
  //si un comentaire est saisi,on l'enregistre dans la table commentaire
      if(isset($_POST['commentaire']) && !empty($_POST['commentaire']))
  {
      $commentaire = mysql_real_escape_string(htmlspecialchars($_POST['commentaire'])); 
          $commentaire = nl2br($commentaire); // Pour le commentaire, comme on utilise un textarea, il faut remplacer les Entrées par des 

   // On peut enfin enregistrer :o)
   $message_commente=$_GET['message'];//On ne peur pas mettre $_GET['message'] directement dans la requete,ça genere un pble @ amine
   $connexion->exec("insert into commentaire values('','$message_commente','$n','$p','$commentaire')");
      }
  //affichage du resultat
  $req=$connexion->query("select * from commentaire where id_message=".$connexion->quote($_GET['message'],PDO::PARAM_STR)."order by id asc");
  $req->setFetchMode(PDO::FETCH_OBJ);
  while($ligne=$req->fetch())
  {
    echo'';
echo'----
';
echo "" . $ligne->nom."  ".$ligne->prenom ." a commenté:
" . $ligne->commentaire . "

";
echo', </td>
';
  }
 $req->closeCursor();
 }
  ?>
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
soukaouta Messages postés 39 Date d'inscription vendredi 29 octobre 2010 Statut Membre Dernière intervention 16 novembre 2012
30 déc. 2011 à 17:27
merci bcp cod57,
ça marche nikel maintenant :D
0
Rejoignez-nous