Soucis section commentaire php

Fermé
pazoo - 11 févr. 2011 à 06:58
 Utilisateur anonyme - 11 févr. 2011 à 09:51
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
	<?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

Utilisateur anonyme
11 févr. 2011 à 07:16
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).
0
Ma table est com ma base est frelaud.kevin

Je vais essayer en supprimant le id ;)
0
Utilisateur anonyme
11 févr. 2011 à 09:51
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 ?
0