Soucis section commentaire php
pazoo
-
Utilisateur anonyme -
Utilisateur anonyme -
Bonjour,
Je souhaite enregistrer les commentaires que les gens postent sur mon site dans ma bdd pour les afficher par la suite, seulement lorsque j'envoi un commentaire, rien ne s'ajoute à la BDD.
Structure de ma table
id int(11) auto_increment
email text latin1_general_ci
message text latin1_general_ci
prenom varchar(30) latin1_general_ci
web text latin1_general_ci
Mon PHP
Quelqu'un t-il repéré l'erreur commise ?
Merci à vous
Je souhaite enregistrer les commentaires que les gens postent sur mon site dans ma bdd pour les afficher par la suite, seulement lorsque j'envoi un commentaire, rien ne s'ajoute à la BDD.
Structure de ma table
id int(11) auto_increment
email text latin1_general_ci
message text latin1_general_ci
prenom varchar(30) latin1_general_ci
web text latin1_general_ci
Mon PHP
<?php
if (isset($_POST['go']) && $_POST['go']=='Signer') {
if ((isset($_POST['email'])) && (isset($_POST['message'])) && (isset($_POST['prenom'])) && (isset($_POST['web']))) {
// si les 3 variables ne sont pas vides, et si l'adresse E-mail est valide, alors, et seulement dans ce cas, on fera notre insertion dans la base
if ((!empty($_POST['email'])) && (!empty($_POST['message'])) && (!empty($_POST['prenom'])) && (!empty($_POST['web']))) {
// on se connecte à notre base
$base = mysql_connect ('sql.free.fr', '***', '**');
mysql_select_db ('com', $base);
// on prepare notre requête d'insertion des données
$sql = 'INSERT INTO com (id, email, message, prenom, web) VALUES ("'.mysql_escape_string($_POST['id']).'", "'.mysql_escape_string($_POST['email']).'", "'.mysql_escape_string($_POST['message']).'", "'.mysql_escape_string($_POST['prenom']).'", "'.mysql_escape_string($_POST['web']).'")';
// on lance la requête
mysql_query($sql) or die('Erreur SQL !'.$sql.'<br />'.mysql_error());
// on ferme la connexion à la base de données
mysql_close();
// on redirige le visiteur vers l'Accueil des petites annonces
header('location:http://frelaud.kevin.free.fr/single-post.php');
// on termine le script courant
exit();
}
else {
$erreur = 'Au moins un des champs est vide.';
}
}
else {
$erreur = 'Les variables nécessaires au script ne sont pas définies.';
}
}
?>
<div id="comment_form_container">
<h2>Poster un commentaire</h2>
<form action="" id="comment_form">
<label for="prenom" class="auto_clear">Prénom</label>
<textarea name="prenom" name="prenom" value="<?php if (isset($_POST['prenom'])) echo htmlentities(trim($_POST['prenom'])); ?>" cols="30" rows="1"></textarea>
<label for="email" class="auto_clear">Email</label>
<textarea name="email" name="email" value="<?php if (isset($_POST['email'])) echo htmlentities(trim($_POST['email'])); ?>" cols="30" rows="1"></textarea>
<label for="web" class="auto_clear">Site Web</label>
<textarea name="web" name="web" value="<?php if (isset($_POST['web'])) echo htmlentities(trim($_POST['web'])); ?>" cols="30" rows="1"></textarea>
<label for="message" class="auto_clear">Votre commentaire</label>
<textarea name="message" value="<?php if (isset($_POST['message'])) echo htmlentities(trim($_POST['message'])); ?>" cols="30" rows="10"></textarea>
<input class="submit" type="submit" value="Commenter" name="go">
</form>
<!-- end comment form -->
</div>
<!-- end comment form container -->
</div>
<!-- end comments -->
Quelqu'un t-il repéré l'erreur commise ?
Merci à vous
3 réponses
-
Bonjour, la table porte le meme nom que la base, c'est normal ?
Et "mysql_escape_string($_POST['id'])" ? on ne sais pas d'ou il sort et il n'est pas utile si ton champ est auto incrementé ;-)
Je suppose que tu fais d'autre verif mais que tu as simplifier le code ici, peut-etre l'erreur vient-elle de la bas?
Sinon soit plus precis sur l'erreur et n'oublie pas de mettre error_reporting( -1 ) ;
(en developpement seulement). -
-
Si j'ai bien compris alors le probleme est le select_db qui devrait selectionner le nom de la base (frelaud.kevin) et non pas le nom de la table (com)
Dans tous les cas avec l'error reporting bien regler cette erreur devrait etre signalee!
As-tu bien mis la ligne que je t'ai noter plus haut ?