Salut à tous,
Je rame depuis plusieurs jours sur un problème pour un blog alors merci d'avance de votre aide.
Sachant que j'ai testé aussi bien en local avec Wampserver et Easy Php que sur le réseau (1&1)...en vain
En gros :
1/J'ai une page qui récupère des articles de ma base de données (blog.php)
2/une page commentaires.php qui me permet de voir les commentaires propres à chaque article, mais il y a aussi un formulaire pour déposer un commentaire
3/ une page cible.php pour envoyer les données du formulaire
4/ 2 bdd, 1 pour les articles, l'autre pour les commentaires
Mon problème est que lorsque je remplis le formulaire, les données sont bien enregistrées dans ma bdd mais les commentaires n'apparaissent pas. Or si j’intègre les données directement dans ma base de données, ils apparaissent bien
En fait l'id_billet est toujours = 0 alors qu'elle devrait être associer à l'article !
Alors merci d'avance de votre aide
la page blog.php
la page commentaires.php
la page cible.php
Merci.
Bye
Zed1
Modifié par Zed1 (22 Aug 2011 - 21:17)
Je rame depuis plusieurs jours sur un problème pour un blog alors merci d'avance de votre aide.
Sachant que j'ai testé aussi bien en local avec Wampserver et Easy Php que sur le réseau (1&1)...en vain
En gros :
1/J'ai une page qui récupère des articles de ma base de données (blog.php)
2/une page commentaires.php qui me permet de voir les commentaires propres à chaque article, mais il y a aussi un formulaire pour déposer un commentaire
3/ une page cible.php pour envoyer les données du formulaire
4/ 2 bdd, 1 pour les articles, l'autre pour les commentaires
Mon problème est que lorsque je remplis le formulaire, les données sont bien enregistrées dans ma bdd mais les commentaires n'apparaissent pas. Or si j’intègre les données directement dans ma base de données, ils apparaissent bien

En fait l'id_billet est toujours = 0 alors qu'elle devrait être associer à l'article !
Alors merci d'avance de votre aide

la page blog.php
<?php
try
{
$pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
$bdd = new PDO('mysql:host=localhost;dbname=blog', 'root', '', $pdo_options);
$req = $bdd->query('SELECT id, titre, contenu, contenu2, sstitre, auteur, DATE_FORMAT(date_creation, \'%d/%m/%Y\') AS date_creation_fr FROM billets ORDER BY date_creation DESC LIMIT 0, 5');
while ($donnees = $req->fetch())
{
?>
<div class="news">
<span class="pos-date">le <?php echo $donnees['date_creation_fr']; ?></span><br />
<h3><a class="permalink" href="ici" title="Permalink to <?php echo htmlspecialchars($donnees['titre']); ?>" rel="bookmark"><?php echo htmlspecialchars($donnees['titre']); ?></a></h3>
<h3 class="sstitre"><?php echo nl2br(htmlspecialchars($donnees['sstitre']));?></h3>
<h3 class="auteur"><?php echo nl2br(htmlspecialchars($donnees['auteur']));?></h3>
<p class="contents"><?php echo nl2br(htmlspecialchars($donnees['contenu']));?></p>
<h3 class="depot"><a class="posdepot" href="commentaires.php?billet=<?php echo ''. $donnees['id'] .''; ?>#formulaire">Déposer</a></h3><br class="clear" />
<a class="suite" href="commentaires.php?billet=<?php echo ''. $donnees['id'] .''; ?>"> Lire la suite <img src="img/fleche2.png" width="14" height="10" /></a>
<h4 class="count"><?php // Je compte les commentaires
$reponse = $bdd->query('SELECT COUNT(*) AS auteur FROM commentaires');
while ($donnees = $reponse->fetch())
{
echo $donnees['auteur'];
}
$reponse->closeCursor();
?></h4>
<span class="pos-count">Commentaires</span>
</div>
<?php
} // Fin de la boucle des billets
$req->closeCursor();
}
catch(Exception $e)
{
die('Erreur : '.$e->getMessage());
}
?>
la page commentaires.php
<?php
try
{
$pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
$bdd = new PDO('mysql:host=localhost;dbname=blog', 'root', '', $pdo_options);
$req = $bdd->prepare('SELECT id, titre, sstitre, contenu, contenu2, DATE_FORMAT(date_creation, \'%d/%m/%Y \') AS date_creation_fr FROM billets WHERE id = ?');
$req->execute(array($_GET['billet']));
$donnees = $req->fetch();
?>
<div class="news2">
<span class="pos-date">le <?php echo $donnees['date_creation_fr']; ?></span>
<h2><strong><?php echo htmlspecialchars($donnees['titre']); ?></strong></h2>
<h3 class="sstitre"><?php echo htmlspecialchars($donnees['sstitre']); ?></h3>
<p class="contents2"><?php echo nl2br(htmlspecialchars($donnees['contenu2'])); ?></p>
</div>
<h3> Vos commentaires</h3>
<?php $req->closeCursor();
$req = $bdd->prepare('SELECT auteur, commentaire, DATE_FORMAT(date_commentaire, \'%d/%m/%Y à %Hh%imin%ss\') AS date_commentaire_fr FROM commentaires WHERE id_billet = ? ORDER BY date_commentaire');
$req->execute(array($_GET['billet']));
while ($donnees = $req->fetch())
{
?>
<div id="deposee">
<span class="pos-date2"><?php echo $donnees['date_commentaire_fr']; ?></span>
<p><?php echo nl2br(htmlspecialchars($donnees['commentaire'])); ?></p>
<p><?php echo htmlspecialchars($donnees['auteur']); ?></strong> </p>
</div>
<?php
}
$req->closeCursor();
}
catch(Exception $e)
{
die('Erreur : '.$e->getMessage());
}
?>
<h3> Déposer un commentaire</h3>
<p class="champs">(*) champs obligatoire</p>
<div id="formulaire">
<form action="cible.php" method="post">
<p><label for="auteur">Pseudo * :</label> <input type="text" name="auteur" id="auteur" /><br />
<label for="commentaire">Email * :</label> <input type="text" name="email" id="email" /><br />
<label for="site">Site web :</label> <input type="text" name="site" id="site" /><br /><br />
<label for="commentaire">Votre message * :</label> <br />
<textarea name="commentaire" rows="6" id="commentaire"></textarea><br />
<input type="hidden" name="id_du_billet" value="$_GET['billet']" />
<input type="submit" value="Envoyer" id="button"/>
</form>
</p>
la page cible.php
<?php
// Connexion à la base de données
try
{
$pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
$bdd = new PDO('mysql:host=localhost;dbname=blog', 'root', '', $pdo_options);
// Insertion du message à l'aide d'une requête préparée
$req = $bdd->prepare('INSERT INTO commentaires (id_billet, auteur, commentaire, email, site) VALUES(?, ?, ?, ?, ?)');
$req->execute(array($_POST['id_du_billet'], $_POST['auteur'], $_POST['commentaire'],$_POST['site'], $_POST['email']));
// Redirection du visiteur vers la page du minichat
header('Location: blog.php');
}
catch(Exception $e)
{
die('Erreur : '.$e->getMessage());
}
?>
Merci.
Bye
Zed1
Modifié par Zed1 (22 Aug 2011 - 21:17)