IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Enregistrement et affichage des commentaires dans la bdd


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Femme Profil pro
    Inscrit en
    Décembre 2013
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2013
    Messages : 14
    Par défaut Enregistrement et affichage des commentaires dans la bdd
    Bonjour

    Toujours dans mon blog je souhaite ajouter la page commentaires.php qui comporte un formulaire et la liste des commentaires sous l'article de la page.

    si j'ajoute la page commentaires.php avec un include dans mon article , les commentaires ne s'enregistrent plus.
    je ne passe pas par l'affichage du message de reussite et je reviens sur la page
    actualite.php.

    J'ai testé à part le fichier commentaires.php et tout fonctionne correctement.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
     
    <?php
    settype($strAuteur, "string");
                   settype($strCommentaire, "string");
                   settype($intId, "int");
                   settype($strAuteurErreur, "string");
                   settype($strCommentaireErreur, "string");
                   settype($blnFormulaireEnvoye, "bool"); 
                   settype($blnErreur, "bool"); 
                   settype($blnCacheForm, "bool");
     
                   $blnFormulaireEnvoye = isset($_POST ["txtAuteur"]);
     
                           if ($blnFormulaireEnvoye){
     
                            $strAuteur = trim(htmlspecialchars($_POST["txtAuteur"]));
     
                            if ($strAuteur =="") {
                                 $strAuteurErreur = "L'auteur du message est obligatoire.";
                                   $bln_erreur = true;
                            }
                            $strCommentaire = trim(htmlspecialchars($_POST["txtCommentaire"]));
     
                            if ($strCommentaire =="") {
                                 $strCommentaireErreur = "Le commentaire est obligatoire.";
                                   $bln_erreur = true;
                            }
                            $intId =  trim(htmlspecialchars($_POST["intId"]));
                          }  
     
                          if ($blnFormulaireEnvoye && !$blnErreur){
     
                          $oConnexion =new \bdd\Connexion();
     
                          $oprepare = $oConnexion->cnx->prepare("INSERT into commentaires(auteur, commentaire, id_billet) VALUES (:auteur, :commentaire, :id_billet)");   
     
                            $oprepare->bindValue(":id_billet", $intId, \PDO::PARAM_INT);  
                           $oprepare->bindValue(":auteur", $strAuteur, \PDO::PARAM_STR);  
                           $oprepare->bindValue(":commentaire", $strCommentaire, \PDO::PARAM_STR);  
     
     
                          $oprepare->execute();
                          //Affichage de la reussite :
                          echo "<h3 class=font-middle>Merci : Votre message a été enregistré. Merci de votre participation ! </h3>";
     
     
     
                          $blnCacheForm=true;  
     
                       }
                       if ($blnCacheForm==FALSE){
                     ?>       
     
                      <form name="frm" method="POST" action="<?php   echo $_SERVER["PHP_SELF"]?>">  
     
                       <input type="hidden" value="<?php echo $_GET["id"]; ?>" name="intId">
                        <p>
                        <label for ="txtAuteur"><span class="erreur"><?php echo $strAuteurErreur?></span><br></label>
                        <input type="text" name="txtAuteur"  id="txtAuteur" value="<?php echo $strAuteur?>" placeholder="Auteur" />  
                       </p>
                       <p>
                       <label for ="txtCommentaire"><span class="erreur"><?php echo $strCommentaireErreur?></span><br></label>
                       <textarea name="txtCommentaire" id="txtCommentaire" rows="5" cols="30" placeholder="Votre Commentaire" ><?php echo $strCommentaire?> </textarea>
                       </p> 
                       <input type="submit" value="ENVOYER" name="btn" />
                       </form>         
     
                   <?php
                     }
                     ?> 
                 </div>
     
                      <!--affichage des commentaires expédiées-->
                     <?php
     
           if(empty($_GET['id'])){
            header('Location: actualite.php');
            exit();
          }
          else{
           $id_billet= ($_GET['id']);
          }
     
          $req = $oConnexion->cnx->prepare('SELECT id, auteur, commentaire, date_commentaire FROM commentaires WHERE id_billet=:id_billet ORDER BY date_commentaire');
          $req->execute(array('id_billet'=>$id_billet));
     
     
     
     
     
     
     
      foreach ($req as $donnees){
         //récupération des dates
         $strDateCommentaire = substr($donnees["date_commentaire"], 8, 2). "/".substr($donnees["date_commentaire"], 5, 2)."/".substr($donnees["date_commentaire"], 0, 4); 
         echo "<h3 class=blog-title-3>".$donnees["auteur"]."</h3>"."<br>";
         echo"<p class=blog-create>"."Crée le".$strDateCommentaire;
         echo "<p class=blog-comment>".$donnees["commentaire"]."</p>";
         echo "<p class=blog-hidden>"."-"."</p>";
      }
     
      $req->closeCursor();
      ?>

  2. #2
    Membre éprouvé Avatar de Sakukun
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2011
    Messages
    74
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2011
    Messages : 74
    Par défaut
    Bonjour,

    Si le commentaire.php marche seul ça viens probablement de l'endroit où tu positionne l'include dans l'article.php, peut-on voir le code de cette page?

    Cordialement,

  3. #3
    Membre averti
    Femme Profil pro
    Inscrit en
    Décembre 2013
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2013
    Messages : 14
    Par défaut
    Bonjour Sakokun

    voici le code de l'article qui appelle la page commentaires.php dans l'include

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    <?php
    //Mise en place du déclenchement de l'autoload qui charge les classes
    include ("inc/php/autoload.php");                            
    //connexion à la base de données:
    $oConnexion =new \bdd\Connexion();
    if(empty($_GET['id'])){
        header('Location: actualite.php');
        exit();
    }
    else{
        $oResultat = $oConnexion->cnx->prepare("SELECT id, sujet, commentaire, dateInscription   From messages  where id=:id ORDER BY dateInscription DESC");
        $oResultat->execute (array('id'=>$_GET['id']));                     
        echo "<div class=billet>";
        foreach ($oResultat as $rs){
            $jour=substr($rs["dateInscription"], 8, 2);  
            $mois=substr($rs["dateInscription"], 5, 2);
            $annee=substr($rs["dateInscription"], 0, 4);
            echo"<div class=blog-create>"."<div class=blog-date-jour>".$jour."</div>"."<div class=blog-date-mois>".$mois."</div>"."<div class=blog-date-annee>".$annee."</div>"."</div>";
            echo"<div class=blog-title-3>".$rs["sujet"]."</div>"."<br>";
            echo"<div class=blog-commentaire>".$rs["commentaire"]."</div>"."<br>";
    ?>
    <?php 
            echo "<p class=blog-hidden>"."-"."</p>";
        }    
    }
    echo"</div>";                         
    ?>
    <?php  
    include ("commentaires.php");           
    ?>
    merci à toi.

  4. #4
    Membre éprouvé Avatar de Sakukun
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2011
    Messages
    74
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2011
    Messages : 74
    Par défaut
    Bonjour,

    A première vue rien de particulier au niveau de l'include, par contre tu utilise les même nom de variable et ouvre 2 fois la connexion a la base c'est peut être là le soucis... il faut penser que le include c'est du copier coller avant l'exécution donc il faut avoir une vue globale du fichier final exécuté.
    Donc les variables déclarées sont les toujours là dans ton commentaires.php la connexion à la bd etc etc..

    A voir avec la page globale mais t'as un </div> en trop dans commentaires.php

    Cordialement,

  5. #5
    Membre averti
    Femme Profil pro
    Inscrit en
    Décembre 2013
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2013
    Messages : 14
    Par défaut
    Ok je vais revoir cela. Je te dirai Merci et joyeux Noel

  6. #6
    Membre éprouvé Avatar de Sakukun
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2011
    Messages
    74
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2011
    Messages : 74
    Par défaut
    Merci à toi aussi

Discussions similaires

  1. Impossible d'enregistrer des images dans la BDD
    Par cashmoney dans le forum JDBC
    Réponses: 0
    Dernier message: 30/09/2009, 17h39
  2. Affichage des commentaire dans un tableau
    Par feynman dans le forum Fortran
    Réponses: 6
    Dernier message: 17/04/2008, 16h15
  3. Pb lors de l'enregistrement des sessions dans une BDD
    Par tomcoch dans le forum Langage
    Réponses: 2
    Dernier message: 17/04/2007, 10h14
  4. probleme d'enregistrement des accents dans la BDD
    Par Invité dans le forum Installation
    Réponses: 1
    Dernier message: 09/07/2006, 21h07
  5. Affichage des données d'une bdd dans un formulaire
    Par Shekhmet dans le forum Langage
    Réponses: 5
    Dernier message: 04/04/2006, 19h27

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo