Php

shevva Messages postés 21 Statut Membre -  
shevva Messages postés 21 Statut Membre -
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. Utilisateur anonyme
     
    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
  2. Utilisateur anonyme
     
    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
  3. GrifOli Messages postés 2223 Statut Membre 597
     
    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
  4. shevva Messages postés 21 Statut Membre
     
    oui.jai tjrs le meme message d'erreur.
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. shevva Messages postés 21 Statut Membre
     
    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
  7. shevva Messages postés 21 Statut Membre
     
    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
  8. shevva Messages postés 21 Statut Membre
     
    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
  9. Utilisateur anonyme
     
    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
  10. shevva Messages postés 21 Statut Membre
     
    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