Erreur dans mon code

Résolu/Fermé
tyranausor Messages postés 3545 Date d'inscription jeudi 6 août 2009 Statut Membre Dernière intervention 1 avril 2022 - Modifié par baladur13 le 28/08/2016 à 11:24
tyranausor Messages postés 3545 Date d'inscription jeudi 6 août 2009 Statut Membre Dernière intervention 1 avril 2022 - 4 sept. 2016 à 19:36
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 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650
28 août 2016 à 02:17
0
tyranausor Messages postés 3545 Date d'inscription jeudi 6 août 2009 Statut Membre Dernière intervention 1 avril 2022 2 031
28 août 2016 à 11:16
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 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650
28 août 2016 à 11:22
Montre ton code modifié
0
tyranausor Messages postés 3545 Date d'inscription jeudi 6 août 2009 Statut Membre Dernière intervention 1 avril 2022 2 031
Modifié par baladur13 le 28/08/2016 à 11:35
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 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650
28 août 2016 à 12:19
Y'a pas de modifs...
Où as tu utilisé la gestion des erreurs pdo ?
0
tyranausor Messages postés 3545 Date d'inscription jeudi 6 août 2009 Statut Membre Dernière intervention 1 avril 2022 2 031
28 août 2016 à 14:53
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 3671 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021 1 011
Modifié par Reivax962 le 30/08/2016 à 09:27
Bonjour,

$req = execute(...

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


Xavier
0
tyranausor Messages postés 3545 Date d'inscription jeudi 6 août 2009 Statut Membre Dernière intervention 1 avril 2022 2 031
30 août 2016 à 13:38
Bonjour, merci pour la correction, j'essaye et je te dis
0
tyranausor Messages postés 3545 Date d'inscription jeudi 6 août 2009 Statut Membre Dernière intervention 1 avril 2022 2 031
30 août 2016 à 19:26
Même en changeant -> pour =, ça ne fonctionne pas. J'ai des erreurs ligne 51 et 85
0
Reivax962 Messages postés 3671 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021 1 011
3 sept. 2016 à 13:44
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 jeudi 6 août 2009 Statut Membre Dernière intervention 1 avril 2022 2 031
3 sept. 2016 à 21:47
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 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650
4 sept. 2016 à 01:11
0
tyranausor Messages postés 3545 Date d'inscription jeudi 6 août 2009 Statut Membre Dernière intervention 1 avril 2022 2 031
4 sept. 2016 à 17:15
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 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650
4 sept. 2016 à 18:13
Montre ton code corrigé que l'on puisse voir où ça pêche
0
tyranausor Messages postés 3545 Date d'inscription jeudi 6 août 2009 Statut Membre Dernière intervention 1 avril 2022 2 031
4 sept. 2016 à 19:36
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