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. 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+
    0
    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
      0
      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
        0
        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
          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)
            0
            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
              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.
                0
                1. oui.jai tjrs le meme message d'erreur.
                  0
                  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?
                    0