IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

ERREUR PHP MVC OBJET


Sujet :

PHP & Base de données

  1. #1
    Membre du Club
    Homme Profil pro
    Inscrit en
    Mars 2013
    Messages
    152
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2013
    Messages : 152
    Points : 57
    Points
    57
    Par défaut ERREUR PHP MVC OBJET
    Bonjour à tous,

    Je ne parviens pas à résoudre mon problème, j'obtiens ce message erreur :
    Warning: Attempt to read property "message" on bool in /volume1/EASYKODE/easykodePhp/views/index.php on line 6
    Voici mon code
    model :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    <?php
    require_once(dirname(__FILE__).'/../publics/utils/database.php');
     
    class Messageaccueille{
        private $id;
        private $message;
        private $pdo;
     
        //Methode magique pour hydraté l'objet
        public function __construct($id = NULL, $message = NULL){
            $this->id = $id;
            $this->mail = $message;
            $this->pdo = Database::getInstance();
        }
     
        function __set($property, $value)
        {
            $this->$property = $value;
        }
     
     
        public function findOne($id){
            $sql = 'SELECT `id`, `message` FROM `utilisateurs` WHERE `id`= :id;';
            $pdo = Database::getInstance();
            $req = $pdo->prepare($sql);
            $req->bindValue(':id',$id,PDO::PARAM_INT);
            try {
                if($req->execute()) {
                    return $req->fetch(PDO::FETCH_OBJ);
                }
            } catch (PDOException $ex) {
                return false;
            }
        }
     
     
     
     
    }

    vue :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    <?php 
        ob_start();
    ?>
     
    <!-- Message accueille -->
    <?= $messageaccueille -> message ?>
     
     
    <?php
     
    $content = ob_get_clean();
     
     
    include(dirname(__FILE__).'/templates/nonConnecter.php');
    ?>
    controller :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    <?php
    require_once(dirname(__FILE__).'/../models/Messageaccueille.php');
     
     
    $id = '1';
     
    // créer une instance de la classe Texte
    $texte = new Messageaccueille();
    $messageaccueille = $texte->findOne($id);
     
    // var_dump($texte);
    // exit;
     
    // Démarrer une nouvelle session
    session_start();
     
     
     
     
    $page = '';
     
    include(dirname(__FILE__).'/../views/index.php');

    quand je fait un var dump de $texte cela me donne ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    object(Messageaccueille)#1 (4) { ["id":"Messageaccueille":private]=> NULL ["message":"Messageaccueille":private]=> NULL ["pdo":"Messageaccueille":private]=> object(PDO)#2 (0) { } ["mail"]=> NULL }
    et le var dump de $messageaccueille me met ceci :
    Merci par avance de votre aide.
    @+ Filou

  2. #2
    Membre du Club
    Homme Profil pro
    Inscrit en
    Mars 2013
    Messages
    152
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2013
    Messages : 152
    Points : 57
    Points
    57
    Par défaut
    Bonsoir,

    Je viens de corrigé une erreur de code mais cela ne règle pas mon problème dans mon modéle j'ai mis mail a la place de message.

    Ci quelqu’un passe par la pour me débloqué .... merci par avance
    @+ Filou

  3. #3
    Expert confirmé Avatar de Toufik83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2012
    Messages
    2 405
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2012
    Messages : 2 405
    Points : 4 841
    Points
    4 841
    Par défaut
    Bonjour,

    Vous êtes sûr que l'utilisateur ayant l'id 1 existe bien dans la table `utilisateurs`?

    Parce que apparemment le résultat de la requête est false.

  4. #4
    Membre du Club
    Homme Profil pro
    Inscrit en
    Mars 2013
    Messages
    152
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2013
    Messages : 152
    Points : 57
    Points
    57
    Par défaut
    Bonjour,

    Oui id 1 existe, merci pour votre aide.

    @+ Filou

  5. #5
    Expert confirmé Avatar de Toufik83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2012
    Messages
    2 405
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2012
    Messages : 2 405
    Points : 4 841
    Points
    4 841
    Par défaut
    Bonjour,
    C'est difficile de deviner l'erreur lorsque l'affichage des erreurs/avertissements en PHP n'est pas activé.

    Pour ceci ajouter ces 3 lignes tout au début du contrôleur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    ini_set('display_errors', 1);
    ini_set('display_startup_errors', 1);
    error_reporting(E_ALL);
    Faites un copier/coller de l'erreur.

    Normalement puisque vous utilisez MVC, ces 3 lignes doivent être déplacés dans le contrôleur de front, celui qui reçoit toutes les requêtes http(s), comme ça vous ne serez pas obligé de les remettre dans tous les contrôleurs.

  6. #6
    Membre actif
    Homme Profil pro
    Webmaster - Développeur/intégrateur web
    Inscrit en
    Septembre 2011
    Messages
    210
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Jura (Franche Comté)

    Informations professionnelles :
    Activité : Webmaster - Développeur/intégrateur web
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2011
    Messages : 210
    Points : 246
    Points
    246
    Par défaut
    Bonjour,

    Issu de la doc : https://www.php.net/manual/fr/pdostatement.fetch.php
    "Valeurs de retour : La valeur retournée par cette fonction en cas de succès dépend du type récupéré. Dans tous les cas, false est retourné si une erreur survient ou s'il n'y a plus de lignes."

    Pour commencer, je ferrais un "bindParam" à la place du "bindValue".
    Ensuite, vous préciser un type "PDO:ARAM_INT", j'ai jamais utilisé cette méthode mais je ne sais pas si c'est bien judicieux de lui fournir une variable de type "string" dans ce cas de figure.

    Pour finir, en complément du dernier commentaire de Toufik83, il pourrait être utile de faire un var_dump de "$ex".

    Bon courage.
    Si vous avez besoin d'une librairie permettant de gérer facilement les fichiers et les dossiers en PHP... ou si vous êtes juste curieux(se) :
    https://github.com/moDevsome/moFilesManager

    N'hésitez pas à me faire un retour

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Developpement de projet PHP / MVC / Objets
    Par Klyne2 dans le forum Bibliothèques et frameworks
    Réponses: 15
    Dernier message: 10/12/2009, 22h37
  2. Erreur PHP Objet
    Par tarbala dans le forum Langage
    Réponses: 9
    Dernier message: 19/10/2009, 10h45
  3. [Apache]Erreur PHP
    Par orditeck dans le forum Apache
    Réponses: 2
    Dernier message: 05/07/2005, 22h42
  4. Erreur php je pense
    Par Anduriel dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 13/06/2005, 13h45
  5. librairie introuvable! Erreur"Pas d'objet dans ce contr
    Par vins111282 dans le forum Access
    Réponses: 5
    Dernier message: 16/05/2005, 14h07

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo