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 avec une variable


Sujet :

PHP & Base de données

  1. #1
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2016
    Messages
    173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

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

    Informations forums :
    Inscription : Avril 2016
    Messages : 173
    Points : 50
    Points
    50
    Par défaut Erreur avec une variable
    Bonjour j'ai ceci comme erreur :
    Notice: Undefined variable: userinfo in /var/www/friendsnetwork/profil.php on line 82
    Et je ne comprend rien puisque dans mon code elle est bien défini.

    Code ou est défini userinfo :
    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
    session_start();
     
    $bdd = new PDO('mysql:host=localhost;dbname=bdd', 'user', 'mdp');
     
    if(isset($_GET['id']) AND $_GET['id'] > 0) {
       $getid = intval($_GET['id']);
       $requser = $bdd->prepare('SELECT * FROM membres WHERE id = ?');
       $requser->execute(array($getid));
       $userinfo = $requser->fetch();
       if(isset($_SESSION['id']) AND !empty($_SESSION['id'])) {
    $msg = $bdd->prepare('SELECT * FROM messages WHERE id_destinataire = ? ORDER BY id DESC');
    $msg->execute(array($_SESSION['id']));
    $msg_nbr = $msg->rowCount();
    ?>
    Code ou ce situe la ligne 82 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if(isset($_SESSION['id']) AND $userinfo['id'] == $_SESSION['id']) {
    Merci d'avance pour votre aide.

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Elle est définie a l'intérieur d'un if.

    la ligne 82 est-elle aussi dans ce if ?

  3. #3
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2016
    Messages
    173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

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

    Informations forums :
    Inscription : Avril 2016
    Messages : 173
    Points : 50
    Points
    50
    Par défaut
    le code de la ligne 82 est le 2ème code que j'ai donné.

  4. #4
    Invité
    Invité(e)
    Par défaut
    Merci j'avais compris.

    Je reformule ma question : quel code y a-t-il entre la ligne 15 et la ligne 82 ?

  5. #5
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2016
    Messages
    173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

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

    Informations forums :
    Inscription : Avril 2016
    Messages : 173
    Points : 50
    Points
    50
    Par défaut
    ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    if(isset($_SESSION['id']) AND $_SESSION['id'] != $getid) {
            $following_test = $bdd->prepare ('SELECT * FROM follow WHERE follower_id = ? AND following_id = ?');
    $following_test->execute(array($_SESSION['id'],$getid));
    $following_test = $following_test->rowCount();
    if($following_test == 1) {

  6. #6
    Invité
    Invité(e)
    Par défaut
    82 - 15 = 67.

    Or, tu ne montres que 5 lignes.


    Ou tu remplaces la ligne 82 par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if(isset($_SESSION['id'], $userinfo['id']) && $userinfo['id'] == $_SESSION['id']) {
    N.B. Il faut éviter d'utiliser AND et OR (qui ont un comportment particulier), et leur préférer && et ||

  7. #7
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2016
    Messages
    173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

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

    Informations forums :
    Inscription : Avril 2016
    Messages : 173
    Points : 50
    Points
    50
    Par défaut
    oui mais les autres lignes ne sont que de l'html donc pas de php donc aucun rapport

  8. #8
    Invité
    Invité(e)
    Par défaut
    OK, mais dans ton code tu as des if(...){ qui sont ouverts.
    Or on ne sait pas où ils sont fermés.

    Donc, même si tu ne mets pas le HTML, mets au moins le code PHP COMPLET (avec fermeture des if), qu'on puisse en voir la LOGIQUE.

  9. #9
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2016
    Messages
    173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

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

    Informations forums :
    Inscription : Avril 2016
    Messages : 173
    Points : 50
    Points
    50
    Par défaut
    j'ai ceci qui ferme les accolades :

  10. #10
    Invité
    Invité(e)
    Par défaut
    5 if ouverts, et tu ne montres que 2 accolades de fermeture.
    Tu as gagné. J'abandonne.

    Bon courage.

    N.B. Je t'ai mis une solution dans le message #6.

  11. #11
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2016
    Messages
    173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

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

    Informations forums :
    Inscription : Avril 2016
    Messages : 173
    Points : 50
    Points
    50
    Par défaut
    mais je n'ais rien d'autre qui a avoir avec ma variable.

  12. #12
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Citation Envoyé par Rombutucraft Voir le message
    mais je n'ais rien d'autre qui a avoir avec ma variable.
    Si c'était le cas, tu aurais sûrement déjà trouvé l'erreur, sans avoir besoin de poster pour demander.

    Et ce n'est pas en nous montrant ton code en pièces détachées façon puzzle qu'on pourra te dire où est l'erreur de logique.

  13. #13
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2016
    Messages
    173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

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

    Informations forums :
    Inscription : Avril 2016
    Messages : 173
    Points : 50
    Points
    50
    Par défaut
    Oui mais je ne peut pas tous divulguer.

  14. #14
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par jreaux62 Voir le message
    même si tu ne mets pas le HTML, mets au moins le code PHP COMPLET (avec fermeture des if), qu'on puisse en voir la LOGIQUE.

  15. #15
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2016
    Messages
    173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

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

    Informations forums :
    Inscription : Avril 2016
    Messages : 173
    Points : 50
    Points
    50
    Par défaut
    Voici le code :
    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
    session_start();
     
    $bdd = new PDO('mysql:host=localhost;dbname=db', 'user', 'mdp');
     
    if(isset($_GET['id']) AND $_GET['id'] > 0) {
       $getid = intval($_GET['id']);
       $requser = $bdd->prepare('SELECT * FROM membres WHERE id = ?');
       $requser->execute(array($getid));
       $userinfo = $requser->fetch();
       if(isset($_SESSION['id']) AND !empty($_SESSION['id'])) {
    $msg = $bdd->prepare('SELECT * FROM messages WHERE id_destinataire = ? ORDER BY id DESC');
    $msg->execute(array($_SESSION['id']));
    $msg_nbr = $msg->rowCount();
    ?>
    La ligne 82 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <?php
             if(isset($_SESSION['id']) AND $userinfo['id'] == $_SESSION['id']) {
             ?>
    Et les fermetures :

  16. #16
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par jreaux62 Voir le message
    Et ce n'est pas en nous montrant ton code en pièces détachées façon puzzle qu'on pourra te dire où est l'erreur de logique.
    Je crois finalement que tu as un problème de compréhension....

  17. #17
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2016
    Messages
    173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

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

    Informations forums :
    Inscription : Avril 2016
    Messages : 173
    Points : 50
    Points
    50
    Par défaut
    Cette erreur s'affiche quand je lance une requete dans le moteur de recherche car sinon sur la page tout est OK.

  18. #18
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2016
    Messages
    173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

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

    Informations forums :
    Inscription : Avril 2016
    Messages : 173
    Points : 50
    Points
    50
    Par défaut
    Oui mais c'est tout ce que j'ai en php sur la page. Je suis désolé mais je ne vois pas comment vous en dire plus.

  19. #19
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2016
    Messages
    173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

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

    Informations forums :
    Inscription : Avril 2016
    Messages : 173
    Points : 50
    Points
    50
    Par défaut
    Voici le code entier :

    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
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    <?php
    session_start();
     
    $bdd = new PDO('mysql:host=localhost;dbname=db', 'user', 'mdp');
     
    if(isset($_GET['id']) AND $_GET['id'] > 0) {
       $getid = intval($_GET['id']);
       $requser = $bdd->prepare('SELECT * FROM membres WHERE id = ?');
       $requser->execute(array($getid));
       $userinfo = $requser->fetch();
       if(isset($_SESSION['id']) AND !empty($_SESSION['id'])) {
    $msg = $bdd->prepare('SELECT * FROM messages WHERE id_destinataire = ? ORDER BY id DESC');
    $msg->execute(array($_SESSION['id']));
    $msg_nbr = $msg->rowCount();
    ?>
    <html>
       <head>
          <meta charset="UTF-8" />
          <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> 
          <meta name="viewport" content="initial-scale=1.0; maximum-scale=1.0" />
          <title>FriendsNetwork - Réseau social privé</title>
          <meta name="description" content=""/>
          <meta name="keywords" content="navigation, menu, responsive, border, overlay, css transition" />
          <meta name="viewport" content="width=device-width, target-densitydpi=device-dpi, initial-scale=1"/>
          <link rel="icon" type="image/png" href="images/favicon.png">
    <link rel="stylesheet" type="text/css" href="profil.css" />
    <?php include("search.php"); ?>
    <div id="menu" style="margin-left: 570px"><ul>
             <li>
                    <a class="mainTopNav__item" href="/actu.php?id=<?php echo $_SESSION['id'];?>&pseudo=<?php echo $userinfo['pseudo']; ?>">Actu</a>
                </li>
                 <li>
                    <a class="mainTopNav__item" href="/profil.php?id=<?php echo $_SESSION['id'];?>&pseudo=<?php echo $_SESSION['pseudo']; ?>">Moi</a>
                </li>
                </ul>
             </div>
             <center>
                <div id="name">
    <div id="user">
        <a href="/profil.php?id=<?php echo $_SESSION['id']; ?>"><FONT color="black"><h3><?php echo $_SESSION['pseudo']; ?></h3></FONT></a>
        <div id="separating" style="border-top-width: 2px; border-top-style: solid; border-top-color: rgb(190, 190, 190); margin-bottom: 10px;"></div>
        <a href="/deconnexion.php"><FONT color="black">Déconnexion</FONT></a>
    </div>
        </center>
       </head>
       <body>
          <div id="bande">
            <img src="/membres/avatars/<?php echo $userinfo['avatar']; ?>" class="logo" style="no-repeat center center/100% white; border-radius: 50%; display: inline-block; float: left; position: relative; top: 50; left: 5; z-index: 200; border: 3px solid #19c589; padding: 3px; -webkit-border-radius: 150px; width: 4em; height: 4em;" />
            <div id="bandepseudo" style=" display: inline-block; float: left; position: relative; top: 25; display: inline-table; padding-right: 21px; background-color: #fff; -webkit-border-top-right-radius: 350px; -webkit-border-bottom-right-radius: 350px; -moz-border-radius-topright: 350px; -moz-border=-radius-bottomright: 350px; border-top-right-radius: 350px; border-bottom-right-radius: 350px; height: 71px ;box-shadow: 0 6px 10px rgba(0,0,0,.23),0 10px 30px rgba(0,0,0,.19); top: 17px; left: -21px; position: relative; padding-left: 30px; width: auto; min-width: 200px; ">
          <h2><div id="bandetext" style="padding-top: 20px;">Profil de <?php echo $userinfo['pseudo']; ?></div></h2></div>
             <br /><br />
             <br /><br />
             Pseudo : <?php echo $userinfo['pseudo']; ?>
             <?php 
             if($_SESSION['pseudo'] == $userinfo['pseudo']) {
              echo  ' <br> '; echo  ' Email : '; echo $userinfo['mail'];
             }
             ?>
             <br />
             Date de naissance : <?php echo $userinfo['date_naissance']; ?>
             <br />
             Autre(s) : <center><?php echo $userinfo['friends']; ?></center>
             <br />
             <br />
             <?php } ?>
             <?php 
             if(isset($_SESSION['id']) AND $_SESSION['id'] != $getid) {
            $following_test = $bdd->prepare ('SELECT * FROM follow WHERE follower_id = ? AND following_id = ?');
    $following_test->execute(array($_SESSION['id'],$getid));
    $following_test = $following_test->rowCount();
    if($following_test == 1) {
    ?>
    <center><a href="follow.php?follower_id=<?php echo $getid; ?>" style="text-decoration: none; color: red;">Ne plus suivre</a></center>
    <?php } else{ ?>
    <center><a href="follow.php?follower_id=<?php echo $getid; ?>" style="text-decoration: none; color: #46A2D9;">Follow</a></center>
             <?php
              }
            }
          }
              ?>
    <?php
             if(isset($_SESSION['id']) AND $userinfo['id'] == $_SESSION['id']) {
             ?>
             <center><a href="/editionprofil.php?id=<?php echo $_SESSION['id'];?>&pseudo=<?php echo $_SESSION['pseudo']; ?>" style="text-decoration: none; color: black;">Editer mon profil</a></center>
             <?php
             }
             ?>
             </p>
    </form>
    </div>
    </div>  
    <br />
    <br />
    <br />
        </body>
       <footer>
       <?php include("footer.php"); ?>
    </footer>
    </html>

  20. #20
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    Salut,

    ben tu vois quand tu veux... avec le code on voit tout de suite le pourquoi de l'erreur :
    Si le test suivant if (isset($_GET['id']) AND $_GET['id'] > 0) échoue alors $userinfo n'est plus définie à la ligne 82.
    Donc à toi de répondre pourquoi le test peut échouer ou remonter le bout de code à problème dans le test supérieur.

Discussions similaires

  1. [MySQL] erreur avec une variable dans une requête
    Par Hayabusa dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 10/03/2007, 00h42
  2. [Débutant][Conception] Erreur avec une classe interne
    Par Devil Redneck dans le forum Général Java
    Réponses: 5
    Dernier message: 11/06/2004, 16h45
  3. Réponses: 2
    Dernier message: 14/05/2004, 15h32
  4. Comparaison d'un registre 8 bits avec une variable 32 bits
    Par tupperware dans le forum x86 32-bits / 64-bits
    Réponses: 3
    Dernier message: 15/10/2002, 11h25
  5. Désigner une variable avec une variable?
    Par littleman dans le forum Paradox
    Réponses: 4
    Dernier message: 12/08/2002, 12h21

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