Recharger le même formulaire

bruce207 Messages postés 106 Date d'inscription mardi 4 mars 2008 Statut Membre Dernière intervention 2 mai 2012 - 3 mai 2011 à 10:26
bruce207 Messages postés 106 Date d'inscription mardi 4 mars 2008 Statut Membre Dernière intervention 2 mai 2012 - 3 mai 2011 à 12:46
Bonjour,
mon problème est le suivant j'ai le code ci-dessous dans le fichier comment.php et je l'inclu (include_once 'comment.php' ) dans la page index. c'est un script qui permet d'ajouter les commentaires dans la page en cours. L'insertion se déroule bien mais lorsque je réaffiche la page par la méthode action du formulaire à laquelle j'ai mis par code l'adresse de la page, je ne vois pas le commentaire. Et lorsque j'actualise ça m'ajoutes de nouveau le même enregistrement et fais apparaitre l'enregistrement précédent. En fait lorsque je charge la page pour la 1ere fois, tous les commentaires s'affichent. Mon problème est donc de savoir comment faire pour insérer un commentaire et recharger la page qui l'affiche et comment gérer le bouton actualiser. Voici le code
<?php
// Active tout les warning. Utile en phase de développement

// En phase de production, remplacer E_ALL par 0

error_reporting(0);

// Inclus le fichier contenant les fonctions personalisées

include_once 'S_DPHSOFT/mes_fonctions.php';

// Fonction de connexion à la base de données

//connexion_DB('dphsoft');
?>

<html>
<head>
</head>



<?php
      //Connexion à la bdd
      connexion_DB('dphsoft');
      //Recherche de tous les commentaires par la requete SELECT
      $reqSQL='SELECT * from comment where id_pageec ="'.$_ENV['id_p'].'" ORDER BY idcomment DESC';
      $reponse=requete_SQL($reqSQL);
  while($donnees=mysql_fetch_array($reponse))
  {
          //Affichage des commentaires
  ?> Par <?php echo $donnees['nomComment'] ;?> Le <?php echo $donnees['dateComment']; ?> 
 <hr />
  <?php echo $donnees['lcomment']; ?> 

  <hr/>
<?php }   ?>
//Formulaire d'ajout de nouveau commentaires
<form name="comment" method="post" action="<?php 'http://' . $_SERVER['SERVER_ADDR'] . ':' . $_SERVER['SERVER_PORT'] . $_SERVER['REQUEST_URI']; ?>">
NOM*, ,
----
ADRESSE MAIL*, 

<label>Votre commentaire

<textarea id="text8" class="ckeditor" name="texte" cols="40" rows="10"onkeyup="compteCarac('text8', 'nbCarac8');" ></textarea> 
0 caractère(s)




</form>


//Ajout de nouveau commentaire
<?php if (isset($_POST['valider']) && !empty($_POST['texte'])) {  
$date = getdate();
echo $date;
connexion_DB('dphsoft');
      	$reqSQL='INSERT INTO comment (idcomment, lcomment, id_pageec, nomComment, adresseMail, dateComment) values ("", "'.$_POST['texte'].'", "'.$_ENV['id_p'].'", "'.$_POST['nom'].'", "'.$_POST['mail'].'", "'.$date.'")';

      requete_SQL($reqSQL);
  deconnexion_DB();
  $_POST['texte'] = "";

}
?>

</html>

Merci de votre aide

4 réponses

cod57 Messages postés 1653 Date d'inscription dimanche 7 septembre 2008 Statut Membre Dernière intervention 11 septembre 2013 19
3 mai 2011 à 11:10
bonjour
j'ai testé comme ça , ça fonctionne
j'ai rajouté une une redirection plus quelques trucs ...
ok !
je pense que l'erreur vient des requetes

a++

<?php
// Active tout les warning. Utile en phase de développement

// En phase de production, remplacer E_ALL par 0

error_reporting(0);

// Inclus le fichier contenant les fonctions personalisées

include_once 'S_DPHSOFT/mes_fonctions.php';

// Fonction de connexion à la base de données

//connexion_DB('dphsoft');
?>

<html>
<head>
</head>



<?php
function connexion_DB(){
mysql_connect('localhost','root','');
mysql_select_db('dan');
}

//Connexion à la bdd
connexion_DB();
//Recherche de tous les commentaires par la requete SELECT
$reqSQL="SELECT * FROM `comment` ORDER BY idcomment DESC";
$reponse=mysql_query($reqSQL);
//$reponse=requete_SQL($reqSQL);
while($donnees=mysql_fetch_array($reponse))
{
//Affichage des commentaires
?> Par <?php echo $donnees['nomComment'] ;?> Le <?php echo $donnees['dateComment']; ?> 
 <hr />
<?php echo $donnees['lcomment']; ?> 

<hr />
<?php }   
mysql_close;
?>

//Formulaire d'ajout de nouveau commentaires

<?php echo $link='http://' . $_SERVER['SERVER_ADDR'] . ':' . $_SERVER['SERVER_PORT'] . $_SERVER['REQUEST_URI'];?>

<form name="comment" method="post" action="<?php echo 'http://' . $_SERVER['SERVER_ADDR'] . ':' . $_SERVER['SERVER_PORT'] . $_SERVER['REQUEST_URI']; ?>">
NOM*, ,
----
ADRESSE MAIL*, 

<label>Votre commentaire

<textarea id="text8" class="ckeditor" name="texte" cols="40" rows="10" onkeyup="compteCarac('text8', 'nbCarac8');" ></textarea>
0 caractère(s)




</form>


//Ajout de nouveau commentaire
<?php if (isset($_POST['valider']) && !empty($_POST['texte']) && $_POST['texte']!=null) {
echo 'ok';
//$date = getdate();
echo $date;
connexion_DB();
$_ENV['id_p']="toto";
echo $reqSQL="INSERT INTO `comment` (
`idcomment` ,
`lcomment` ,
`id_pageec` ,
`nomComment` ,
`adresseMail,` ,
`dateComment` 
)
 values (null, '".$_POST['texte']."', '".$_ENV['id_p']."', '".$_POST['nom']."', '".$_POST['mail']."', now())";
if($reponse=mysql_query($reqSQL)){
echo 'yo';
}else{
echo 'nyo';
}
//requete_SQL($reqSQL);
//deconnexion_DB();
$_POST['texte']=null;
mysql_close();
header('Location: '.$link);exit;
}else{
echo 'err';
}
?>

</html>



CREATE TABLE IF NOT EXISTS `comment` (
`idcomment` int(11) NOT NULL AUTO_INCREMENT,
`lcomment` varchar(50) NOT NULL,
`id_pageec` varchar(50) NOT NULL,
`nomComment` varchar(50) NOT NULL,
`adresseMail,` varchar(50) NOT NULL,
`dateComment` datetime NOT NULL,
PRIMARY KEY (`idcomment`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=8 ;
0
cod57 Messages postés 1653 Date d'inscription dimanche 7 septembre 2008 Statut Membre Dernière intervention 11 septembre 2013 19
3 mai 2011 à 11:25
je te conseille de ne pas ecrire les $_POST direct dans la requete (hack)
il existe une fonction extract() qui les transforme
utilser mysql_real_escape_string()

Bonne programmation !
0
cs_ludwig59 Messages postés 128 Date d'inscription lundi 21 avril 2008 Statut Membre Dernière intervention 6 mai 2011 2
3 mai 2011 à 12:17
Bonjour,

Il faut mettre la requête d'ajout du commentaire avant d'afficher la liste des commentaires pour prendre en compte directement celui qui vient d'être ajouté.
0
bruce207 Messages postés 106 Date d'inscription mardi 4 mars 2008 Statut Membre Dernière intervention 2 mai 2012
3 mai 2011 à 12:46
Bjr, merci mais en mettant la requête d'insertion avant l'affichage ça marche !
0
Rejoignez-nous