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

Langage PHP Discussion :

Undefined property alors que je les récupère bien dans mon select


Sujet :

Langage PHP

  1. #1
    Membre habitué
    Homme Profil pro
    Webmaster
    Inscrit en
    Juillet 2015
    Messages
    518
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Juillet 2015
    Messages : 518
    Points : 184
    Points
    184
    Par défaut Undefined property alors que je les récupère bien dans mon select
    Bonjour,

    Je ne comprends pas le probleme, j'ai des messages d'erreurs pour mes deux variables que je récupère dans mon select mais il ne s'affichent pas!
    ( ! ) Notice: Undefined property: stdClass::$username in C:\wamp\www\pag\profils.php on line 32
    ( ! ) Notice: Undefined property: stdClass::$id in C:\wamp\www\pag\profils.php on line 35
    Undefined alors que je les récupères bien dans mon select !

    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
    <?php
     
    $idmbr = (int) $_GET['idmbr'];
     
    // Connexion à la base de données
    require_once 'inc/db.php';
     
    // Récupération du profil
    $req = $pdo->prepare('SELECT id, username, confirmed_at FROM users WHERE id = :idmbr AND confirmed_at IS NOT NULL');
    $req->execute(['idmbr' => $_GET['idmbr']]);
    $donnees = $req->fetch();
     
    if($donnees == null){
      $_SESSION['flash']['danger'] = "Ce membre n'est pas valide aucun résultat";
      header('Location: account.php');
      exit();
    }
     
    ?>
     
    <div class="panel panel-info">
      <div class="panel-heading">
        <h3 class="panel-title"><?php echo htmlspecialchars($donnees->username); ?></h3>
      </div>
      <div class="panel-body">
        ID : <?php echo $donnees->id ?>
      </div>
    </div>
    merci pour votre aide

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Tu as debugué en contrôlant le contenu de $donnees ?
    Au passage $donnees ne peut pas être NULL, il sera FALSE s'il n'y a pas eu de résultat.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre habitué
    Homme Profil pro
    Webmaster
    Inscrit en
    Juillet 2015
    Messages
    518
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Juillet 2015
    Messages : 518
    Points : 184
    Points
    184
    Par défaut
    oui par exemple pour l'idmbr 2 que je passe dans l'url j'ai :

    object(stdClass)[4]
    public 'id' => string '2' (length=1)
    public 'username' => string 'test' (length=4)
    public 'confirmed_at' => string '2016-02-05 18:13:35' (length=19)
    donc j'ai bien un résultat, donc pourquoi mes variables plus bas ne fonctionnent pas ?

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Etant donné que les numéros de ligne ne correspondent je suppose qu'il manque des bouts de code dans ce que tu nous as montré.
    Regarde ce qui se passe entre le fetch et l'affichage, a quel moment $donnees n'est plus bon.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre habitué
    Homme Profil pro
    Webmaster
    Inscrit en
    Juillet 2015
    Messages
    518
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Juillet 2015
    Messages : 518
    Points : 184
    Points
    184
    Par défaut
    non il ne manque rien voici mon code complet :

    (je précise que si le membre n'existe pas ou pas valide alors je suis bien redirigé vers la page account.php mais si le membre existe bien donc un résultat trouvé les variables ne s'affichent pas plus bas.)

    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 'inc/functions.php';
    logged_only();
     
    $idmbr = (int) $_GET['idmbr'];
     
    // Connexion à la base de données
    require_once 'inc/db.php';
    $user_id = $_SESSION['auth']->id;
     
    // Récupération du profil
    $req = $pdo->prepare('SELECT id, username, confirmed_at FROM users WHERE id = :idmbr AND confirmed_at IS NOT NULL');
    $req->execute(['idmbr' => $_GET['idmbr']]);
    $donnees = $req->fetch();
     
    // var_dump($donnees); // j'ai testé.
     
    if($donnees == false){
      $_SESSION['flash']['danger'] = "Ce membre n'est pas valide aucun résultat";
      header('Location: account.php');
      exit();
    }
     
    ?>
     
    <?php require 'inc/header.php'; ?>
     
    <div class="page-header">
      <h1>Profil</h1>
    </div>
     
    <div class="panel panel-info">
      <div class="panel-heading">
        <h3 class="panel-title"><?php echo htmlspecialchars($donnees->username); ?></h3>
      </div>
      <div class="panel-body">
        ID : <?php echo $donnees->id ?>
      </div>
    </div>

  6. #6
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Regarde ce qui se passe entre le fetch et l'affichage, a quel moment $donnees n'est plus bon.

    Les numéros de ligne ne correspondent pas entre le code que tu nous montres et les messages d'erreur donc il y a bien quelque chose de différent.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  7. #7
    Membre habitué
    Homme Profil pro
    Webmaster
    Inscrit en
    Juillet 2015
    Messages
    518
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Juillet 2015
    Messages : 518
    Points : 184
    Points
    184
    Par défaut
    le premier var_dump($donnees); Je récupère bien les données mais pas le deuxième.

    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
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    <?php
    require 'inc/functions.php';
    logged_only();
     
    $idmbr = (int) $_GET['idmbr'];
     
    // Connexion à la base de données
    require_once 'inc/db.php';
    $user_id = $_SESSION['auth']->id;
     
    // Récupération du profil
    $req = $pdo->prepare('SELECT id, username, confirmed_at FROM users WHERE id = :idmbr AND confirmed_at IS NOT NULL');
    $req->execute(['idmbr' => $_GET['idmbr']]);
    $donnees = $req->fetch();
     
    var_dump($donnees);
    /*
    if($donnees == false){
      $_SESSION['flash']['danger'] = "Ce membre n'est pas valide aucun résultat";
      header('Location: account.php');
      exit();
    }*/
     
    ?>
     
    <?php require 'inc/header.php'; ?>
     
    <div class="page-header">
      <h1>Profil</h1>
    </div>
     
    <?php var_dump($donnees); ?>
     
    <div class="panel panel-info">
      <div class="panel-heading">
        <h3 class="panel-title"><?php echo htmlspecialchars($donnees->username); ?></h3>
      </div>
      <div class="panel-body">
        ID : <?php echo $donnees->id ?>
      </div>
    </div>
     
    <?php
     
    $req->closeCursor(); // Important : on libère le curseur pour la prochaine requête
     
    ?>
     
    <?php require 'inc/footer.php'; ?>
    Nom : img.jpg
Affichages : 460
Taille : 113,3 Ko

  8. #8
    Membre habitué
    Homme Profil pro
    Webmaster
    Inscrit en
    Juillet 2015
    Messages
    518
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Juillet 2015
    Messages : 518
    Points : 184
    Points
    184
    Par défaut
    problème résolu

    j'avais une requête dans mon include header.php qui porte le même nom $donnees

    merci à toi pour le var_dump($donnees); j'ai réussi grâce a ton aide.

  9. #9
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Il me semble evident que dans header.php tu fais une requête dont tu extrais $donnees->nb.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 28/07/2010, 16h52
  2. Réponses: 1
    Dernier message: 13/01/2010, 12h22
  3. une seule et uniqe variable qui pose probleme alors que pas les autres!
    Par guiguizekid dans le forum Général Python
    Réponses: 3
    Dernier message: 16/05/2008, 08h27
  4. Réponses: 7
    Dernier message: 30/12/2006, 17h13
  5. [VBA Access] Champ texte null alors que l'objet existe bien.
    Par Caroline1 dans le forum VBA Access
    Réponses: 9
    Dernier message: 28/03/2006, 17h31

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