Cette erreur me j'arrive pas trouver une solution
Résolu
hagualshaikh
Messages postés
21
Date d'inscription
Statut
Membre
Dernière intervention
-
hagualshaikh Messages postés 21 Date d'inscription Statut Membre Dernière intervention -
hagualshaikh Messages postés 21 Date d'inscription Statut Membre Dernière intervention -
Notice: Undefined index: billet in C:\xampp\htdocs\php\commentaire.php on line 26
le
Commentaires
Notice: Undefined index: billet in C:\xampp\htdocs\php\commentaire.php on line 50
###### ci-join mon code de "commentaire.php
##############
et voi-ci mon code de "iddexs.php
le
Commentaires
Notice: Undefined index: billet in C:\xampp\htdocs\php\commentaire.php on line 50
###### ci-join mon code de "commentaire.php
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>Mon blog</title> <link href="osama/style.css" rel="stylesheet" /> </head> <body> <h1>Mon super blog !</h1> <p><a href="iddexs.php">Retour à la liste des billets</a></p> <?php // Connexion à la base de données try { $bdd = new PDO('mysql:host=localhost;dbname=teste;charset=utf8', 'root', ''); } catch(Exception $e) { die('Erreur : '.$e->getMessage()); } // Récupération du billet $req = $bdd->prepare('SELECT id, titres, countenu, DATE_FORMAT(date_creations, \'%d/%m/%Y à %Hh%imin%ss\') AS date_creations_fr FROM billet WHERE id = ?'); $req->execute(array($_GET['billet'])); $donnees = $req->fetch(); ?> <div class="news"> <h3> <?php echo htmlspecialchars($donnees['titres']); ?> <em>le <?php echo $donnees['date_creations_fr']; ?></em> </h3> <p> <?php echo nl2br(htmlspecialchars($donnees['countenu'])); ?> </p> </div> <h2>Commentaires</h2> <?php $req->closeCursor(); // Important : on libère le curseur pour la prochaine requête // Récupération des commentaires $req = $bdd->prepare('SELECT auteurs, commentaires, DATE_FORMAT(date_commentaires, \'%d/%m/%Y à %Hh%imin%ss\') AS date_commentaires_fr FROM cmmonente WHERE id_billets = ? ORDER BY date_commentaires'); $req->execute(array($_GET['billet'])); while ($donnees = $req->fetch()) { ?> <p><strong><?php echo htmlspecialchars($donnees['auteurs']); ?></strong> le <?php echo $donnees['date_commentaires_fr']; ?></p> <p><?php echo nl2br(htmlspecialchars($donnees['commentaires'])); ?></p> <?php } // Fin de la boucle des commentaires $req->closeCursor(); ?> </body> </html>
##############
et voi-ci mon code de "iddexs.php
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>Mon blog</title> <link href="osama/style.css" rel="stylesheet" /> </head> <body> <h1>Mon super blog !</h1> <p>Derniers billets du blog :</p> <?php // Connexion à la base de données try { $bdd = new PDO('mysql:host=localhost;dbname=teste;charset=utf8', 'root', ''); } catch(Exception $e) { die('Erreur : '.$e->getMessage()); } // On récupère les 5 derniers billets $req = $bdd->query('SELECT id, titres, countenu, DATE_FORMAT(date_creations, \'%d/%m/%Y à %Hh%imin%ss\') AS date_creations_fr FROM billet ORDER BY date_creations DESC LIMIT 0, 5'); <code html> while ($donnees = $req->fetch()) { ?> <div class="news"> <h3> <?php echo htmlspecialchars($donnees['titres']); ?> <em>le <?php echo $donnees['date_creations_fr']; ?></em> </h3> <p> <?php // On affiche le contenu du billet echo nl2br(htmlspecialchars($donnees['countenu'])); ?> <br /> <em><a href="commentaire.php?billet=<?php echo $donnees['id']; ?>">Commentaires</a></em> </p> </div> <?php } // Fin de la boucle des billets $req->closeCursor(); ?> </body> </html>
A voir également:
- Cette erreur me j'arrive pas trouver une solution
- Trouver adresse mac - Guide
- Driverpack solution - Télécharger - Divers Utilitaires
- Comment trouver le mot de passe wifi sur son téléphone - Guide
- Ou trouver l'adresse ip - Guide
- Trouver une adresse - Guide
4 réponses
yg_be
Messages postés
23541
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 584
bonjour, as-tu essayé
print_r($_GET);?
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>Mon blog</title> <link href="osama\style.css" rel="stylesheet" /> </head> <body> <h1>Mon super blog !</h1> <p>Derniers billets du blog :</p> <?php // Connexion à la base de données try { $bdd = new PDO('mysql:host=localhost;dbname=teste;charset=utf8', 'root', ''); } catch(Exception $e) { die('Erreur : '.$e->getMessage()); } // On récupère les 5 derniers billets $req = $bdd->query('SELECT id, titres, countenu, DATE_FORMAT(date_creations, \'%d/%m/%Y à %Hh%imin%ss\') AS date_creations_fr FROM billet ORDER BY date_creations DESC LIMIT 0, 5'); while ($donnees = $req->fetch()) { ?> <div class="news"> <h3> <?php echo htmlspecialchars($donnees['titres']); ?> <em>le <?php echo $donnees['date_creations_fr']; ?></em> </h3> <p> <?php // On affiche le contenu du billet echo nl2br(htmlspecialchars($donnees['countenu'])); ?> <br /> <em><a href="commentaire.php?billet=<?php echo $donnees['id']; ?>">Commentaires</a></em> </p> </div> <?php } // Fin de la boucle des billets $req->closeCursor(); ?> </body> </html> ######### ca toute mon cod de " iddexs.php"
EDIT : Ajout des balises de code
Bonjour,
Ta question concernant le PHP et non la base de données... j'ai déplacé ta discussion dans le bon forum.
Ensuite, en ce qui concerne ton souci.. cela vient du fait que ta variable GET n'existe pas lorsque tu affiches ta page.
Je t'invite à lire ceci :
https://forums.commentcamarche.net/forum/affich-37636387-php-notice-undefined-index
De plus, vu que tu codes en PDO, je te conseille vivement d'appliquer ce qui est marqué là :
https://forums.commentcamarche.net/forum/affich-37584941-php-pdo-gerer-les-erreurs
puis.. d'une manière plus générale.. à t'inspirer fortement de ce qui est préconisé ici :
https://forums.commentcamarche.net/forum/affich-37584947-php-gestion-des-erreurs-debogage-et-ecriture-du-code
Et enfin.. ton code revu et corrigé :
Ta question concernant le PHP et non la base de données... j'ai déplacé ta discussion dans le bon forum.
Ensuite, en ce qui concerne ton souci.. cela vient du fait que ta variable GET n'existe pas lorsque tu affiches ta page.
Je t'invite à lire ceci :
https://forums.commentcamarche.net/forum/affich-37636387-php-notice-undefined-index
De plus, vu que tu codes en PDO, je te conseille vivement d'appliquer ce qui est marqué là :
https://forums.commentcamarche.net/forum/affich-37584941-php-pdo-gerer-les-erreurs
puis.. d'une manière plus générale.. à t'inspirer fortement de ce qui est préconisé ici :
https://forums.commentcamarche.net/forum/affich-37584947-php-gestion-des-erreurs-debogage-et-ecriture-du-code
Et enfin.. ton code revu et corrigé :
<?php /** * Fichier commentaire.php */ //affichage des erreurs php error_reporting(E_ALL); ini_set('display_errors', TRUE); ini_set('display_startup_errors', TRUE); // Connexion à la base de données (une seule suffit ! ) try{ $bdd =new PDO('mysql:host=localhost;dbname=teste; charset=utf8', 'root', ''); // Activation des erreurs PDO $bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); // mode de fetch par défaut : FETCH_ASSOC / FETCH_OBJ / FETCH_BOTH $bdd->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC); } catch(PDOException $e) { die('Erreur : ' . $e->getMessage()); } //recupération PROPRE des variables AVANT de les utiliser $billet = !empty($_GET['billet'])? $_GET['billet'] : NULL; // Récupération du billet if($billet){ $sql = 'SELECT id , titres , countenu , DATE_FORMAT(date_creations, \'%d/%m/%Y à %Hh%imin%ss\') AS date_creations_fr FROM billet WHERE id = ?'; $datas = array($billet); //Execution de la requete try{ $req = $bdd -> prepare($sql) ; $req->execute($datas) ; $donnees = $req->fetch(); }catch(Exception $e){ // en cas d'erreur : echo " Erreur ! ".$e->getMessage(); echo " Les datas : " ; print_r($datas); } $req->closeCursor(); // Important : on libère le curseur pour la prochaine requête // Récupération des commentaires $sql = 'SELECT auteurs, commentaires, DATE_FORMAT(date_commentaires, \'%d/%m/%Y à %Hh%imin%ss\') AS date_commentaires_fr FROM cmmonente WHERE id_billets = ? ORDER BY date_commentaires'; $datas = array($billet); //Execution de la requete try{ $req = $bdd -> prepare($sql) ; $req->execute($datas) ; $commentaires = $req->fetchAll(); // on stocke le resultat dans un array }catch(Exception $e){ // en cas d'erreur : echo " Erreur ! ".$e->getMessage(); echo " Les datas : " ; print_r($datas); } $req->closeCursor(); // Important : on libère le curseur pour la prochaine requête }else{ echo "Aucun Billet selectionné !"; //le temps des tests : print_r($_GET); exit(); } ?> <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>Mon blog</title> <link href="osama/style.css" rel="stylesheet" /> </head> <body> <h1>Mon super blog !</h1> <p><a href="iddexs.php">Retour à la liste des billets</a></p> <div class="news"> <h3> <?php echo htmlspecialchars($donnees['titres']); ?> <em>le <?php echo $donnees['date_creations_fr']; ?></em> </h3> <p> <?php echo nl2br(htmlspecialchars($donnees['countenu'])); ?> </p> </div> <h2>Commentaires</h2> <?php if(!empty($commentaires)){ foreach($commentaires as $donnees ){ echo '<p><strong>'. htmlspecialchars($donnees['auteurs']).'</strong> le '.$donnees['date_commentaires_fr'].'</p> <p>'.nl2br(htmlspecialchars($donnees['commentaires'])).'</p>'; } } ?> </body> </html>
merci j'ai executer le code qui vous ma corrige mais c'a me doner :
Aucun Billet selectionné !Array ( )
Aucun Billet selectionné !Array ( )
Cela signifie que ton lien ne contient aucune variable GET.
Pourrais tu nous donner l'URL qui apparait dans la barre de navigation de ton navigateur ?
Je pense que soit tu n'a pas la variable 'billet' .. soit elle est vide ....
Si elle est vide.. c'est que ton code qui est sensé générer le lien ne fonctionne pas non plus.
Inspire toi du code que je t'ai donné pour le réécrire...
Pourrais tu nous donner l'URL qui apparait dans la barre de navigation de ton navigateur ?
Je pense que soit tu n'a pas la variable 'billet' .. soit elle est vide ....
Si elle est vide.. c'est que ton code qui est sensé générer le lien ne fonctionne pas non plus.
Inspire toi du code que je t'ai donné pour le réécrire...
Array ( )
le
Commentaires
Notice: Undefined index: billet in C:\xampp\htdocs\php\commentaire.php on line 51
analysons maintenant pourquoi: peux-tu partager le code source html de la page qui est affichée par iddexs.php ?