[PHP] Formulaire commentaires

Aucun -  
Alain_42 Messages postés 5413 Statut Membre -
Bonjour,
Je ne comprends pas pourquoi les commentaires de mon script ne s'affiche pas sur mon site ?
Pouvez vous m'aider s'il vous plait,je suis un ultra debutant.

La table 'commentaires' :

 CREATE TABLE `nemontrepas`.`commentaires` (
`pseudo` VARCHAR( 30 ) NOT NULL COMMENT 'Mon_pseudo',
`message` VARCHAR( 30 ) NOT NULL COMMENT 'Mon_message'
) ENGINE = MYISAM CHARACTER SET latin1 COLLATE latin1_swedish_ci COMMENT = 'ma_table_commentaires'


La page 'formulaire.html' :

<html>
<body>
<CENTER>
<form method="post" action="commentaires.php">
<B>Pseudo :</B> <BR><input type="text" name="pseudo"><br><br>
<B>Message :</B> <BR><textarea type="text" name="message" cols="50" rows="10" /></textarea>
<BR><BR>
<input type="submit" value="Envoyer">
</form>
</CENTER>
</body>
</html>


La page 'commentaires.php' :
<?
$server = 'localhost';
$user = 'nemontrepas';
$pass = 'nemontrepas';
$table = 'commentaires';

mysql_pconnect($server, $user, $pass)
or die("Impossible de se connecter au serveur $server");
mysql_select_db($db)
or die("impossible de se connecter à la base $db");

$pseudo = $_POST['pseudo'];
$message = $_POST['message'];
if(empty($pseudo))
{
print ("Veuillez ajouter un pseudo !");
exit();
}
if(empty($message))
{
print ("Veuillez ajouter un message !");
exit();
}
else
{
print ("Message envoyé par $pseudo : $message");
}
$query = "INSERT INTO $table (pseudo, message) 
VALUES ('$pseudo', '$message')";
$resultat = mysql_query($query)
or die("L'insertion a echouée car ". mysql_error() ."."); 
?>


Cela affiche : Message envoyé par Test : Mon message L'insertion a echouée car Unknown column 'message' in 'field list'.
Qu'est ce qui se passe ? Pourquoi ensuite quand je fais retour,le commentaire a disparu...

Merci beaucoup !
Configuration: Windows XP
Firefox 3.0.5

9 réponses

  1. Alain_42 Messages postés 5413 Statut Membre 904
     
    Voilà:

    formulaire.html
    <html>
    <body>
    <CENTER>
    <form method="post" action="commentaires.php">
    <B>Pseudo :</B> <BR><input type="text" name="pseudo"><br><br>
    <B>Message :</B> <BR><textarea type="text" name="message" cols="50" rows="10" /></textarea>
    <BR><BR>
    <input type="submit" name="envoyer" value="Envoyer">
    </form>
    </CENTER>
    </body>
    </html>


    commentaires.php

    <?php
    $server = 'localhost';
    $user = 'nemontrepas';
    $pass = 'nemontrepas';
    $table = 'commentaires';
    $db = 'nom_de_ta_base';
    
    mysql_connect($server, $user, $pass) or die("Impossible de se connecter au serveur $server");
    mysql_select_db($db) or die("impossible de se connecter à la base $db");
    
    // premiere partie enregistrement si appel depuis formulaire:
    if(isset($_POST['envoyer'])){
    	$pseudo = $_POST['pseudo'];
    	$message = $_POST['message'];
    	if(empty($pseudo))	{
    		print ("Veuillez ajouter un pseudo !");
    		exit();
    	}elseif(empty($message)){
    		print ("Veuillez ajouter un message !");
    		exit();
    	}else{
    		print ("Message envoyé par $pseudo : $message");
    	}
    	$query = "INSERT INTO $table (pseudo, message) 	VALUES ('".$pseudo."', '".$message."')";
    	$resultat = mysql_query($query) or die("L'insertion a echouée car ". mysql_error());
    
    	if($resultat) echo "L'insertion a reussi !"; 
    }
    
    //deuxième partie affichage de ce qu'il y a dans la table, y compris le dernier enregistrement éventuel
    //si appel directement c'est seulement cette partie qui servira
    	$query="SELECT pseudo,message FROM $table";
    	$reponse=mysql_query($query) or die ("Pb requette SELECT :".mysql_error());
    	//nombre d'enr trouves dans la table
    	$nb_enr=mysql_num_rows($reponse);
    	
    	//affichage reponses dans un tableau:
    	if($nb_enr >0){
    		echo "Il y a :".$nb_enr." enregistrements<br />;
    		echo "<table><tr><th>Pseudo</th><th>Commentaire</th></tr>";
    		//on parcours les résultats extraits ligne par ligne
    		while ($ligne=mysql_fetch_assoc($reponse)){
    			echo "<tr><td>".$ligne['pseudo']."</td><td>".stripslashes($ligne['message'])."</td></tr>";
    		}
    		echo "</table>";
    	}else{
               echo "Aucun enregistrement trouv&eacute; dans la table !";
            }
    	mysql_close();
    ?>
    
    2
  2. Aucun
     
    Cela m'affiche maintenant : "Message envoyé par Test : Mon message",
    je n'ai plus le message d'erreur car j'ai remplacé ceci :

    $table = 'commentaires';


    Par cela :

    $table = commentaires;


    Par contre mon problème reste le même,le commentaire n'est pas enregistrer dans la page
    commentaires.php

    Commentçamarche ?
    Merci beaucoup !!
    0
  3. Aucun
     
    Aidez moi,svp !
    Je rafraichis la page !
    0
  4. Alain_42 Messages postés 5413 Statut Membre 904
     
    Bonjour,

    CREATE TABLE `nemontrepas`.`commentaires` (...


    bizarre, pour moi il faut simplment:

    CREATE TABLE `commentaires` (etc....
    


    ensuite essayes comme ça:
    <?php
    $server = 'localhost';
    $user = 'nemontrepas';
    $pass = 'nemontrepas';
    $table = 'commentaires';
    //et $db ??  que tu utilises plus bas ????
    
    mysql_pconnect($server, $user, $pass) or die("Impossible de se connecter au serveur $server");
    mysql_select_db($db) or die("impossible de se connecter à la base $db");
    
    $pseudo = $_POST['pseudo'];
    $message = $_POST['message'];
    if(empty($pseudo))
    {
    print ("Veuillez ajouter un pseudo !");
    exit();
    }
    elseif(empty($message))
    {
    print ("Veuillez ajouter un message !");
    exit();
    }
    else
    {
    print ("Message envoyé par $pseudo : $message");
    }
    $query = "INSERT INTO $table (pseudo, message) 
    VALUES ('".$pseudo."', '".$message."')";
    $resultat = mysql_query($query) or die("L'insertion a echouée car ". mysql_error());
    
    if($resultat) echo "L'insertion a reussi !"; 
    ?>
    
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Aucun
     
    Merci du commentaire !
    Cela marche mais...
    Ce que je souhaite c'est que quand j'ai ajouté mon commentaire,le commentaire ajouté reste sur la page commentaire.php et ne disparait pas quand je rafraichis la page ;)

    Merci de votre réponse !
    0
  7. Alain_42 Messages postés 5413 Statut Membre 904
     
    Cela marche mais...

    Si tu veux de l'aide sois plus precis c'est quoi qui ne marche pas ? tu as un message d'erreur ??

    Ce que je souhaite c'est que quand j'ai ajouté mon commentaire,le commentaire ajouté reste sur la page commentaire.php et ne disparait pas quand je rafraichis la page ;)

    qu'entends tu par rafraichir la page ?
    0
  8. Aucun
     
    C'est simple non ?
    Je passe par "formulaire.html",je remplis les champs et je valide et je suis redirigé vers la page "commentaires.php" et cela me mets :

    Le Pseudo que j'ai entré : Le commentaire que j'ai ajouté
    L'insertion a reussi !


    Là c'est impecable,mais quand je reviens plus tard dans la page "commentaires.php",le commentaire et pseudo que j'ai ajouté en passant par le formulaire a disparu...
    Moi ce que je souhaite,c'est que les commentaires ajoutés à l'aide du formulaire.html ne disparaisse à la prochaine visite de la page commentaires.php !

    Je veux que mes visiteurs peuvent ajouter facilement des commentaires sur cette page :)

    Merci beaucoup =)
    0
  9. Alain_42 Messages postés 5413 Statut Membre 904
     
    non ce que tu veux faire n'est pas simple

    formulaire.html poste les valeurs rentrées (pseudo et commentaires) vers ta page commentaires.php

    donc ils y sont à ce moment là

    mais c'est normal que lorsque tu appelles ta page commentaires.php directement tu n'ai t plus les valeurs.

    pour qu'ils apparaissent ils faut aller les lire dans la BDD

    si je comprend bien:

    un visiteur ajoute un commentaire dans formulaire.html la page commentaire.php rentre ça dans la base

    et tu veux que le visteurs en appelant la page commentaires.php rentre à nouveau un commentaire

    Pourquoi ne le ferait-il pas via le formulaire qui est fait pour ça ?
    0
  10. Aucun
     
    Exactement ce que je souhaite !
    Alors ma question,"Comment lire les commentaires postés dans ma bdd en php ?"
    En gros je veux une sauvegarde quoi,les commentaires restent !

    Merci !
    0