[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 !
A voir également:
- [PHP] Formulaire commentaires
- Whatsapp formulaire opposition - Guide
- Formulaire de réclamation facebook compte désactivé - Guide
- Formulaire de reclamation instagram - Guide
- Easy php - Télécharger - Divers Web & Internet
- Clément a partagé le fichier mme bovary. il a écrit des commentaires dans le document. quel est le 2e commentaire ? - Guide
9 réponses
Voilà:
formulaire.html
commentaires.php
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 :
Par cela :
Par contre mon problème reste le même,le commentaire n'est pas enregistrer dans la page
Commentçamarche ?
Merci beaucoup !!
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 !!
Bonjour,
CREATE TABLE `nemontrepas`.`commentaires` (...
bizarre, pour moi il faut simplment:
ensuite essayes comme ça:
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...
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 ?
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 :
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 =)
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 ?
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 ?