Page 1 sur 1

Problème système de commentaires (INSERT INTO)

Posté : 17 mars 2011, 18:49
par Pauloscorps
Bonjour à tous,

J'ai actuellement un gros problème quant à la réalisation d'un système de commentaires.

Voici le code de mon fichier "comment.php" :

Code : Tout sélectionner

<?php require_once('connexion.php'); // ajouter un commentaire include ('form_comments.php'); if(isset($_POST['publier'])) { $auteur = $_POST['auteur']; $mail = $_POST['mail']; $contenu = $_POST['contenu']; /*echo $auteur; echo $mail;*/ if(!empty($auteur) && !empty($mail) && !empty($contenu)) { if($auteur=="") print("Veuillez saisir votre nom<BR/>\n"); if($mail=="") print("Veuillez saisir votre mail.<BR/>\n"); if($contenu=="") print("Veuillez saisir un commentaire.<BR/>\n"); $article = $_REQUEST["article"]; $req = "INSERT INTO toolate_commentaires (idArticle, auteur, mail, contenu) VALUES ('" . $article . "','" . $auteur . "' , '" . $mail . "', '" . $contenu . ");"; echo $req; $result = mysql_query($req, $connexion); if ($result) { echo "Merci d'avoir commenté !" ; } else { echo "Votre commentaire n'a pas pu être ajouté. Merci de réessayer."; } } } mysql_close($connexion); ?>
J'ai d'ores-et-déjà fais plusieurs tests pour vérifier que les données saisies dans le formulaire étaient bien récupérées.
Grâce à la ligne "echo $req", j'ai pu voir que tout les champs que je souhaite ajouter sont bien présent, mais à chaque fois, "$result" me renvoie le message d'erreur :"Votre commentaire n'a pas pu être ajouté. merci de réessayer". Je ne comprends donc pas où se situe le problème :

Code : Tout sélectionner

INSERT INTO toolate_commentaires (idArticle, auteur, mail, contenu) VALUES ('3','MonNom' , 'monEmail', 'MonCommentaire);Votre commentaire n'a pas pu être ajouté. Merci de réessayer.
Merci d'avance à ceux qui donneront un peu de leur temps pour m'aider !
Pauline.

Re: Problème système de commentaires (INSERT INTO)

Posté : 17 mars 2011, 18:59
par xTG
Essayes de debug en activant les erreurs MySQL ou bien en utilisant la fonction de retour d'erreur : mysql_error()

Re: Problème système de commentaires (INSERT INTO)

Posté : 17 mars 2011, 19:03
par AB
Active les messages d'erreur avant ta requête avec
ini_set('mysql.trace_mode', true);
ou
$result = mysql_query($req, $connexion) or die (mysql_error());

Re: Problème système de commentaires (INSERT INTO)

Posté : 17 mars 2011, 19:07
par Pauloscorps
Tout d'abord, merci pour ta réponse.
Cependant, au risque de paraître complètement stupide, je ne sais pas comment utilisé mysql_error :lol:

J'ai essayé avec cette ligne :

Code : Tout sélectionner

echo mysql_error($result);
Mais apparemment, ca marche pas...

Re: Problème système de commentaires (INSERT INTO)

Posté : 17 mars 2011, 19:10
par Pauloscorps
Merci !
Désolé pour le post précédent, j'ai répondu avant qu'il soit en ligne.

Donc voilà l'erreur que j'obtiens :
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''monCommentaire)' at line 1
"monCommentaire", c'est le texte que j'ai entré dans le formulaire, dans le champ "Commentaire"... Ca m'énerve !

Re: Problème système de commentaires (INSERT INTO)

Posté : 17 mars 2011, 19:19
par Pauloscorps
Ah ca y'est ! Ca fonctionne. En fait il s'agit, comme quasiment toujours en PHP, d'une erreur de guillemets.
Avec cette requête, tout va bien !
	$req = 'INSERT INTO toolate_commentaires (idArticle, auteur, mail, contenu) VALUES ("' . $article . '","' . $auteur . '" , "' . $mail . '", "' . $contenu . '");';
Merci à vous deux de m'avoir fait part du "or die" qui m'a fortement mise sur la piste .

Re: Problème système de commentaires (INSERT INTO)

Posté : 17 mars 2011, 21:33
par xTG
Tu pourrais avoir un nouveau problème du même genre maintenant, si ton utilisateur rentre un champs avec un ' par exemple. ;)
Protèges tes variables avec mysql_real_escape_string().