Php

Fermé
shevva Messages postés 17 Date d'inscription jeudi 7 février 2013 Statut Membre Dernière intervention 20 octobre 2014 - 7 févr. 2013 à 01:03
shevva Messages postés 17 Date d'inscription jeudi 7 février 2013 Statut Membre Dernière intervention 20 octobre 2014 - 7 févr. 2013 à 12:26
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>
A voir également:

9 réponses

Utilisateur anonyme
7 févr. 2013 à 08:34
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
Utilisateur anonyme
7 févr. 2013 à 10:07
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
GrifOli Messages postés 2111 Date d'inscription samedi 28 juin 2008 Statut Membre Dernière intervention 26 mars 2020 591
Modifié par GrifOli le 7/02/2013 à 02:18
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
shevva Messages postés 17 Date d'inscription jeudi 7 février 2013 Statut Membre Dernière intervention 20 octobre 2014
7 févr. 2013 à 08:09
oui.jai tjrs le meme message d'erreur.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
shevva Messages postés 17 Date d'inscription jeudi 7 février 2013 Statut Membre Dernière intervention 20 octobre 2014
7 févr. 2013 à 08:13
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
shevva Messages postés 17 Date d'inscription jeudi 7 février 2013 Statut Membre Dernière intervention 20 octobre 2014
7 févr. 2013 à 09:06
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
shevva Messages postés 17 Date d'inscription jeudi 7 février 2013 Statut Membre Dernière intervention 20 octobre 2014
7 févr. 2013 à 10:23
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
Utilisateur anonyme
7 févr. 2013 à 10:54
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
shevva Messages postés 17 Date d'inscription jeudi 7 février 2013 Statut Membre Dernière intervention 20 octobre 2014
7 févr. 2013 à 12:26
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