Erreur dans mon code

Résolu
tyranausor Messages postés 3545 Date d'inscription   Statut Membre Dernière intervention   -  
tyranausor Messages postés 3545 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour, je viens vers vous car j'ai une erreur dans mon code php mais je n'arrive pas à la corriger!
Voici l'extrait de mon code où l'erreur se présente

<?php

    try
    {
        $bdd = new PDO('mysql:host=localhost;dbname=reza;charset=utf8', 'root', ''); // Connexion à la base de données
    }

    catch(Exception $e)
    {

        die('Erreur : '.$e->getMessage());
    }

// Récupération de la poésie

        $req = $bdd->prepare('SELECT id, theme, contenu, DATE_FORMAT(date_creation, \'%d/%m/%Y à %Hh%imin%ss\') AS date_creation_fr FROM poesie WHERE id = ?');

        $req->execute(array($_GET['poesie']));

        $donnees = $req->fetch();
 $req->closeCursor();
 ?>

<div class="news">

    <h3>

        Commentaires sur le razal n° <?php echo $donnees['id']; ?> sur <?php htmlspecialchars($donnees['theme']); ?>

        <em>le <?php echo $donnees['date_creation_fr']; ?></em> >!-- affiche seulement le html! -->

    </h3>

    

    <p><?php echo nl2br(htmlspecialchars($donnees['contenu'])); ?></p> <!-- n'affiche rien -->

    

</div>


<?php
// Récupération des commentaires

$req = $bdd->prepare('SELECT auteur, commentaire, DATE_FORMAT(date_commentaire, \'%d/%m/%Y à %Hh%imin%ss\') AS date_commentaire_fr FROM commentaires WHERE id_poesie = ? ORDER BY date_commentaire');

$req->execute(array($_GET['poesie']));


while ($donnees = $req->fetch())

{

?>

<p><strong><?php echo htmlspecialchars($donnees['auteur']); ?></strong> le <?php echo $donnees['date_commentaire_fr']; ?></p>

<p><?php echo nl2br(htmlspecialchars($donnees['commentaire'])); ?></p>

<?php

} // Fin de la boucle des commentaires

    if(isset($_POST['submit']))
    {
        // traite tes valeurs POST
        $auteur = strip_tags($_POST['auteur']);
        $commentaire = strip_tags($_POST['commentaire']);
        // Vérification de tes champs
         
        // Si valide..
        $req = $bdd->prepare('INSERT INTO commentaires(id_poesie, auteur, commentaire, date_commentaire) VALUES (:id_poesie,:auteur,:commentaire,NOW())');
        $req = execute(array(
            ':id_poesie'=>$_GET['id'], // Numéroro à récupérer dans l'url
            ':auteur'=>$auteur, 
            ':commentaire'=>$commentaire
        )); // n'écrit rien, ni sur la page, ni dans la base
        
        $req->closeCursor();
    }
?><br />

<h1>Laisser un commentaire ?</h1>
  
<form method="post" action="comments.php?poesie=<?php echo $_GET['poesie'] ?>">
    <p><label for="auteur">Nom : </label><input type="text" name="auteur" /></p>
    <p><label for="commentaire">Commentaires : </label><textarea name="commentaire" /></textarea></p>
    <p><input type="submit" name="submit" value="Envoyer" /></p>
</form>


J'ai pour erreur un " calll underfine function execute() line 107"

Merci de votre aide


Les forumeurs ne sont pas des devins, en tout cas, moi non!
EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ici : ICI

Merci d'y penser dans tes prochains messages.
A voir également:

8 réponses

jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
0
tyranausor Messages postés 3545 Date d'inscription   Statut Membre Dernière intervention   2 039
 
Bonjour, même avec les erreurs pdo activé, ça ne donne rien de plus (et je ne sais pas si je m'en suis bien servi, je débute)
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
Montre ton code modifié
0
tyranausor Messages postés 3545 Date d'inscription   Statut Membre Dernière intervention   2 039
 
Voici mon code

<?php error_reporting(E_ALL); ?>
<!DOCTYPE html>

<html>

    <head>

        <meta charset="utf-8" />

        <title>Commenter</title>

    <link href="style.css" rel="stylesheet" /> 

    </head>        

    <body>
        <header>
    <p>
        <div id="logo">Logo papillon+bougie</div>
    </p>

      <h1>L'Apothéose</h1>

        <p><a href="ghazal.php" rel="nofollow" target="_blank">Retour à la liste des poésies</a></p>

    
</header>
<section>
    
    <?php include("include\liens.php"); ?>

<article>

<?php
error_reporting(E_ALL);
    try
    {
        $bdd = new PDO('mysql:host=localhost;dbname=reza;charset=utf8', 'root', ''); // Connexion à la base de données
    }

    catch(Exception $e)
    {

        die('Erreur : '.$e->getMessage());
    }

// Récupération de la poésie

        $req = $bdd->prepare('SELECT id, theme, contenu, DATE_FORMAT(date_creation, \'%d/%m/%Y\') AS date_creation_fr FROM poesie WHERE id = ?');

        $req->execute(array($_GET['poesie']));


        $donnees = $req->fetch();
 $req->closeCursor();
 ?>

<div class="news">

    <h3>

        Commentaires sur le razal n° <?php echo $donnees['id']; ?> sur <?php htmlspecialchars($donnees['theme']); ?>

        <em>le <?php echo $donnees['date_creation_fr']; ?></em> <!-- affiche seulement le html! -->

    </h3>

    

    <p><?php echo nl2br(htmlspecialchars($donnees['contenu'])); ?></p> <!-- n'affiche rien -->

    

</div>


<?php
// Récupération des commentaires

$req = $bdd->prepare('SELECT auteur, commentaire, DATE_FORMAT(date_commentaire, \'%d/%m/%Y à %Hh%imin%ss\') AS date_commentaire_fr FROM commentaires WHERE id_poesie = ? ORDER BY date_commentaire');

 $bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
 $bdd->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_OBJ);

$req->execute(array($_GET['poesie']));


while ($donnees = $req->fetch())

{

?>

<p><strong><?php echo htmlspecialchars($donnees['auteur']); ?></strong> le <?php echo $donnees['date_commentaire_fr']; ?></p>

<p><?php echo nl2br(htmlspecialchars($donnees['commentaire'])); ?></p>

<?php

} // Fin de la boucle des commentaires

    if(isset($_POST['submit']))
    {
        // traite tes valeurs POST
        $auteur = strip_tags($_POST['auteur']);
        $commentaire = strip_tags($_POST['commentaire']);
        // Vérification de tes champs
         
        // Si valide..
        $req = $bdd->prepare('INSERT INTO commentaires(id_poesie, auteur, commentaire, date_commentaire) VALUES (:id_poesie,:auteur,:commentaire,NOW())');
        $req = execute(array(
            ':id_poesie'=>$_GET['id'], // Numéro à récupérer dans l'url
            ':auteur'=>$auteur, 
            ':commentaire'=>$commentaire
        )); // n'écrit rien, ni sur la page, ni dans la base
        
        $req->closeCursor();
    }
?><br />

<h1>Laisser un commentaire ?</h1>
  
<form method="post" action="comments.php?poesie=<?php echo $_GET['poesie'] ?>">
    <p><label for="auteur">Nom : </label><input type="text" name="auteur" /></p>
    <p><label for="commentaire">Commentaires : </label><textarea name="commentaire" /></textarea></p>
    <p><input type="submit" name="submit" value="Envoyer" /></p>
</form>


En fait, l'article sera affiché avec les commentaires et en fin, il y a un formulaire pour en laisser mais il n'apparait pas!

Les forumeurs ne sont pas des devins, en tout cas, moi non!
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
Y'a pas de modifs...
Où as tu utilisé la gestion des erreurs pdo ?
0
tyranausor Messages postés 3545 Date d'inscription   Statut Membre Dernière intervention   2 039
 
La gestion des erreurs pdo se trouve ligne 92 et 93
0

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

Posez votre question
Reivax962 Messages postés 3672 Date d'inscription   Statut Membre Dernière intervention   1 011
 
Bonjour,

$req = execute(...

devrait être
$req->execute(...


Xavier
0
tyranausor Messages postés 3545 Date d'inscription   Statut Membre Dernière intervention   2 039
 
Bonjour, merci pour la correction, j'essaye et je te dis
0
tyranausor Messages postés 3545 Date d'inscription   Statut Membre Dernière intervention   2 039
 
Même en changeant -> pour =, ça ne fonctionne pas. J'ai des erreurs ligne 51 et 85
0
Reivax962 Messages postés 3672 Date d'inscription   Statut Membre Dernière intervention   1 011
 
OK, donc « " calll underfine function execute() line 107" » est bien corrigé ?
Il faut nous donner les autres messages d'erreur (et nous dire à quelle ligne ça correspond...) pour pouvoir aider.
0
tyranausor Messages postés 3545 Date d'inscription   Statut Membre Dernière intervention   2 039
 
Bonjour, pardon pour le retard de ma réponse. J'ai plus d'erreur ligne 107, c'est seulement 51 et 85 avec undefine index poesie pour les deux. J'ai en plus undefine index poesie line 103call stark #TimeMemoryFunctionLocation 10.0730141056 {main}
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
0
tyranausor Messages postés 3545 Date d'inscription   Statut Membre Dernière intervention   2 039
 
J'ai traité les erreurs, j'en ai plus. C'est juste pour les requêtes, ça ne fonctionne pas! Impossible de laisser un commentaire (pas d'insertion dans la base) et pas de lecture
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
Montre ton code corrigé que l'on puisse voir où ça pêche
0
tyranausor Messages postés 3545 Date d'inscription   Statut Membre Dernière intervention   2 039
 
Je me répond moi-même. J'ai mal appliqué la correction des erreurs PDO. Je me suis finalement aidé de ce cours avec un exemple de l'utilisation car je l'avais mis au mauvais endroit.
0