Problème insert bdd

Eléphanteau du PHP | 10 Messages

04 janv. 2019, 01:18

Bonsoir les gens je viens suite à un problème vraiment je ne comprends pas...
Pour mon projet j'ai une zone de commentaires à la suite des articles. Encore hier je taffais dessus et j'arrivais sans problèmes à poster de nouveaux commentaires mais tout à l'heure j'ai décidé de réessayer pour vérifier parce que j'allais vider ma table dans ma base de données et étrangement aucuns commentaires n'étaient postés or l'action fonctionne et je reçois bien mon message "Votre commentaire a bien été posté". Je suis donc allé voir dans ma BDD et aucun nouveau commentaire inséré, je ne comprends pas si vous pouviez m'aider...
<?php
session_start();
?>
<?php
$bdd = new PDO("mysql:host=127.0.0.1;dbname=inscription;charset=utf8", "root", "");
$bdd = new PDO("mysql:host=127.0.0.1;dbname=articles;charset=utf8", "root", "");
if(isset($_GET['id']) AND !empty($_GET['id'])) {
   $get_id = ($_GET['id']);
   $article = $bdd->prepare('SELECT * FROM articles WHERE id = ?');
   $article->execute(array($get_id));
   if($article->rowCount() == 1) {
      $article = $article->fetch();
      $id = $article['id'];
      $titre = $article['titre'];
      $contenu = $article['contenu'];
      $likes = $bdd->prepare('SELECT id FROM likes WHERE id_article = ?');
      $likes->execute(array($id));
      $likes = $likes->rowCount();
      $dislikes = $bdd->prepare('SELECT id FROM dislikes WHERE id_article = ?');
      $dislikes->execute(array($id));
      $dislikes = $dislikes->rowCount();
   } else {
      die('Cet article n\'existe pas !');
   }
} else {
   die('Erreur');
}
?>
<!DOCTYPE html>
<html>
<head>
      <title><?= $titre ?></title>
      <meta charset="utf-8" />
      <link rel="stylesheet" href="assets/css/main.css" />

   </head>
   <body class="homepage is-preload">
<?php
$bdd = new PDO('mysql:host=127.0.0.1;dbname=articles;charset=utf8','root','');
if(isset($_GET['id']) AND !empty($_GET['id'])) {
   $getid = ($_GET['id']);
   $article = $bdd->prepare('SELECT * FROM articles WHERE id = ?');
   $article->execute(array($getid));
   $article = $article->fetch();
   if(isset($_POST['submit_commentaire'])) {
      if(isset($_POST['pseudo'],$_POST['commentaire']) AND !empty($_POST['pseudo']) AND !empty($_POST['commentaire'])) {
         $pseudo = ($_POST['pseudo']);
         $commentaire = ($_POST['commentaire']);
         if(strlen($pseudo) < 255) {
            $ins = $bdd->prepare('INSERT INTO commentaires (pseudo, commentaire, id_article) VALUES (?,?,?)');
            $ins->execute(array($pseudo,$commentaire,$getid));
            $c_msg = "<span style='color:green'>Votre commentaire a bien été posté</span>";
         } else {
            $c_msg = "Erreur: Le pseudo doit faire moins de 255 caractères";
         }
      } else {
         $c_msg = "<span style='color:red'>Erreur: Tous les champs doivent être complétés</span>";
      }
   }
   $commentaires = $bdd->prepare('SELECT * FROM commentaires WHERE id_article = ? ORDER BY id DESC');
   $commentaires->execute(array($getid));
?>
      <div id="page-wrapper">

         <!-- Header -->
            <section id="header">
               <div class="container">

                  <!-- Logo -->
                  <img class="background_nav" src="#" alt="">
                     <h1 id="logo">Un peu de lecture ?</h1>
                  </div>
               </section>

<section id="main">
               <div class="container">
                  <div id="content">

                     <!-- Post -->
                        <article class="box post">
                           <header>
                              <h2><?= $titre ?></h2>
   <p><?= $contenu ?></p> <br/>

   <a href="php/action.php?t=1&id=<?= $id ?>">J'aime</a> (<?= $likes ?>)
   <br />
   <a href="php/action.php?t=2&id=<?= $id ?>">Je n'aime pas</a> (<?= $dislikes ?>) <br/>
   <a href="page_articles">Page précédente</a>
   <br/><br/> 

<section>
   <div class="">
   <form method="POST">
   <input type="text" name="pseudo" value="<?= $_SESSION['name'] ?>" /><br />
   <textarea name="commentaire" placeholder="Votre commentaire..."></textarea><br />
   <input type="submit" value="Poster mon commentaire" name="submit_commentaire" />
</form>

</section>

</form> <br/>
   <h2>Les commentaires</h2>
   <?php
$grosMots = array('je vous épargne ces mots'); 
$remplacement = '*'; 
?>

<?php if(isset($c_msg)) { echo $c_msg; } ?>
<br /><br />
<?php while($c = $commentaires->fetch()) {
$c['commentaire'] = str_replace($grosMots, $remplacement, strtolower($c['commentaire'])); 
echo  "<br/>"; 
echo  "<br/>"; 
echo '<span style="background-color:white; color:black; font-size:200%; text-decoration:underline">'.$c['pseudo'].'</span>' ; 
echo  "<br/>"; 
echo   '<span style="color:black;">'.nl2br($c['commentaire']).'</span>';}
 ?>




<?php } ?>
<?php

?>
   
</body>
</html>

Petit nouveau ! | 2 Messages

12 janv. 2019, 00:23

salut
déjà pour commencer, c'est normal que t'as affecter la même variable ($bdd) à deux bases de données !!!! , car après tu ne pourra pas exécuter de requête !