[PHP] Formulaire commentaires
Aucun
-
Alain_42 Messages postés 5413 Statut Membre -
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' :
La page 'formulaire.html' :
La page 'commentaires.php' :
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 !
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
-
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é dans la table !"; } mysql_close(); ?> -
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 pagecommentaires.php
Commentçamarche ?
Merci beaucoup !! -
-
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 !"; ?> -
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
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 ! -
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 ? -
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 =) -
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 ? -
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 !