Php

Bonjour,
j'ai ecrit ce programme m1 on m'indique une erreur a la ligne 26.(Notice: Undefined index: Pseudo in C:\Program Files\EasyPHP-12.1\www\Nouveau dossier\Formulaire d'insert bd ingtlc1 tbl comment.php on line 26

Notice: Undefined index: Commentaires in C:\Program Files\EasyPHP-12.1\www\Nouveau dossier\Formulaire d'insert bd ingtlc1 tbl comment.php on line 26)
svp aidez moi a resoudre ce probleme.

<html>
<head>
<title>commentaires</title>
</head>
<body>
<form method="POST" ACTION="" >
<table align="center" width="100px" weight="600px" bgcolor="#0099FF" border="2">
<tr><td><B>Pseudo:</B></td><td><input name="Pseudo" type="text"/></td></tr>
<tr><td><B>Commentaires:</B></td><td><input name="Commentaires" type="textarea"/></td></tr>
<tr><td colspan=2 align="center"><input name="Envoyer" value="Envoyer" type="submit"/><input name="Annuler" value="Annuler" type="reset"></tr>
</table>
<?php
// CONNEXION A LA BASE DE DONNEE
try{
$bdd=new PDO('mysql:host=127.0.0.1;dbname=ing1tlc','root','');
}
// GESTION D'ERREUR
catch(exception $e)
{
die('ERREUR:'.$e->getMessage());
}
// INSERTION DANS LA BASE DE DONNEE
$req=$bdd->prepare('INSERT INTO comment(Pseudo,Commentaires)VALUES(?,?)');
$req->execute(array($_POST['Pseudo'],$_POST['Commentaires']));
// SELECTION DE 5 ELEMENTS POUR AFFICHAGE
$reponse=$bdd->query('SELECT*FROM comment ORDER BY id DESC LIMIT 0, 5');
// AFFICHAGE DES DONNEES 1 A 5
while($donnees=$reponse->fetch())
{
?>
<?php
echo $donnees['Pseudo'];
?>
:
<?php
echo $donnees['Commentaires'];
$reponse->closecurser();
}
?>
</form>

</body>
</html>

9 réponses

  1. Mets un espace entre SELECT*FROM à la ligne 26 comme ça:

    $reponse=$bdd->query('SELECT * FROM comment ORDER BY id DESC LIMIT 0,5');  
    
    As-tu toujours une message d'erreur par la suite?
    1. En fait,on me signale l'erreur sur la ligne:
      $req->execute(array($_POST['Pseudo'],$_POST['Commentaires']));

      (Notice: Undefined index: Pseudo in C:\Program Files\EasyPHP-12.1\www\Nouveau dossier\Formulaire d'insert bd ingtlc1 tbl comment.php on line 26

      Notice: Undefined index: Commentaires in C:\Program Files\EasyPHP-12.1\www\Nouveau dossier\Formulaire d'insert bd ingtlc1 tbl comment.php on line 26)
      svp aidez moi a resoudre ce probleme.
      1. Bonjour

        Tu as cette erreur parce que tu traites le formulaire avant de l'avoir reçu, donc avant que $_POST['Pseudo'], $_POST['Commentaire']... ne soient définis.

        Il ne faut traiter le formulaire que si les données correspondantes ont été reçues. Pour ça, il faut tester si au moins une ( ou toutes si tu es rigoureux) de ses variables est définie :

        if (isset($_POST['Pseudo'])) {
        // traitement du formulaire
        }
        1. Merci le pere.cela m'a aide a avancer m1 il ya 1 otre erreur qu'on me signale a la ligne :
          $reponse->closecurser();

          (Fatal error: Call to undefined method PDOStatement::closecurser() in C:\Program Files\EasyPHP-12.1\www\Nouveau dossier\Formulaire d'insert bd ingtlc1 tbl comment.php on line 39)
          1. Le message est pourtant clair : cette méthode n'existe pas. Il suffit de vérifier dans la doc.
            C'est closeCursor, pas closecurser.
            1. Effectivement c une erreur 2 frappe.Derniere question:dans cette partie du code:
              // SELECTION DE 5 ELEMENTS POUR AFFICHAGE
              $reponse=$bdd->query('SELECT * FROM comment ORDER BY id DESC LIMIT 0, 5');
              // AFFICHAGE DES DONNEES 1 A 5
              while($donnees=$reponse->fetch())
              {
              ?>
              <?php
              echo $donnees['Pseudo'];
              ?>
              :
              <?php
              echo $donnees['Commentaires'];
              $reponse->closecursor();
              }
              ?>
              </form>
              quel erreur je commet pour qu'il affiche chaque nouveau pseudo suivi du commentaire en remplacement du precedent au lieu de les afficher a la chaine sans effacer le precedent.
              merci d'avance
              1. Je n'ai rien compris à ta question.
                Je suis étonné de voir ton $reponse->closecursor(); à l'intérieur du while.
                Pour changer de ligne, il faut mettre un '<br />' après le commentaire
                1. Merci enormement le pere.En plus 2 tes infos j'ai fai quelques modifications et ca marche comme sur des roulettes.j'espere devenir 1 jour assez bon pour pouvoir t'aider aussi.
                  Merci ossi a toi GrifOli .tu as o moin essayer. a+