Fatal error: Call to undefined function nombre_membre()

Bonjour,

J'ai cette erreur : Fatal error: Call to undefined function nombre_membre() in C:\wamp\www\rs\body\menu.php on line 3

<?php
// Fichier menu.php
 $nombre_membre = nombre_membre();
 $nb_membre = ($nombre_membre > 1) ? $nombre_membre ." membres" : $nombre_membre ." membre";
 
?>
<div class='menu'>
    <ul>
     <li><a href="index.php?page=membre">Accueil</a></li>
     <li><a href="index.php?page=update">Changer vos informations</a></li>
     <li><a href="index.php?page=liste_membre">les membres</a></li>
     <li><a href="index.php?page=amis">Vos amis</a></li>
     <li>
        <a href="index.php?page=invitations">Invitations</a>
               <?php if(!function_exists('afficher_ibi_invitations')){
                  echo "<br> Erreur : La fonction afficher_ibi_invitations() n'existe pas !";
                }else{
                 $ibi = afficher_ibi_invitations();
                 if($ibi !== '0') {
                 //echo "<div class='ibi_invitations'>
                      echo "<p class='ibi_invitations'>".$ibi."</p>";
                  //   </div>";
                 }  
                 }?>
        </li>
        <li>
                <a href="index.php?page=conversations">Messages</a>
                <?php
                if(!function_exists('afficher_ibi_messages')){
                echo "<br> Erreur : La fonction afficher_ibi_messages() n'existe pas !";
                }else{
                $ibi = afficher_ibi_messages();
                if($ibi != '0') {
                //echo "<div class='ibi_messages'>".$ibi."</div>";
                 echo $ibi;
                 }  
                 }
                  ?>
        </li>
 
<li class="nbr"><?php echo $nb_membre;?></li>
   </ul>
</div>


Merci merci :)

3 réponses

  1. Salut,

    Le message d'erreur est explicite : la fonction nombre_membre() n'existe pas dans ton script.
    Si cette fonction est définie dans un autre fichier php, tu dois inclure ce dernier via l'instruction include ou require.

    Bonne journée
    1. c'est depuis que j'ai modifié mon index.php que j'ai cette erreur :
      <!DOCTYPE html>
      <html>
          <head>
            <link rel='stylesheet' href='css/style.css'>
          </head>
          <meta charset="UTF-8" >
          <body>
      	      <?php  include('body/menu.php');  ?>
                <div id='content'>
                <?php
                    include($content);
                 ?>
          </div>
          </body>


      j'ai rajouté cette ligne :
      <?php  include('body/menu.php');  ?>
    2. Dans quel fichier est définie la fonction nombre_membre() ?
  2. Elle est definie dans membre.func.php :
    //la function qui va compter le nombre de personnes inscrites
    function nombre_membre() {
    global $bdd; // déclaration globale de BDD
    $req = $bdd->query("SELECT id FROM utilisateurs")or die(print_r($bdd->errorInfo()));
    return $req->rowCount();
    }
    1. Parfait. Et ce fichier est-il inclus dans le fichier index.php ou menu.php ?
    2. @Pitetoui j'en ai fais un
      <?php  include_once('body/menu.php');  ?>
      dans mon body html (index.php) et je fais appel à cette fonction dans mon menu.php comme vous pouvez le voir sur le sujet de mon topic.
    3. Oui tu as inclus le fichier menu.php. Il faut maintenant inclure le fichier membre.func.php dans le fichier index.php ou dans le fichier menu.php.
    4. @Pitetj'ai maintenant tout en décalé...
    5. Modérateur
      tout décalé ???
  3. Oui, de ce genre :
    -http://www.noelshack.com/2015-29-1436957815-capture.jpg
    -http://www.noelshack.com/2015-29-1436957818-capture2.jpg

    et j'ai cette erreur : Fatal error: Cannot redeclare infos_membre_connecte() (previously declared in C:\wamp\www\rs\functions\membre.func.php:22) in C:\wamp\www\rs\functions\membre.func.php on line 51

    membre.func.php :
    <?php
    //*********************************************//
    //Fichier : membre.func.php
    //*********************************************//
    ini_set("display_errors", "1");
    error_reporting(E_ALL);
    //-------------------------------------------
    // Include du fichier de connexion à la BDD
    //-------------------------------------------
    $DIR_SITE = $_SERVER['DOCUMENT_ROOT'] . "rs"; // chemin racine de ton site
    $CnxBDD = $DIR_SITE . "/functions/connect.php"; // emplacement du fichier depuis la racine de ton site
    
    if(file_exists($CnxBDD)){
     require_once($CnxBDD) ;
    }else{
     echo "<br><b>ERREUR !</b> Fichier $CnxBDD Introuvable";
    }
    
    /**
    * function qui va recuperer les infos de l'utilisateur connecté
    */
    function infos_membre_connecte(){
       global $bdd; // déclaration globale de BDD
       $infos=array();
    
       // Récupération variable de session PSEUDO
       $pseudo = isset($_SESSION['pseudo'])?$_SESSION['pseudo']:'';
       
       //préparation de la requete :
       $sql = "SELECT * FROM utilisateurs WHERE pseudo = :pseudo";
       $params = array(":pseudo"=>$pseudo);
      
       //stocke la requête et les paramêtres dans la variable de retour (cela facilite le debogage au cas où ! )
       $infos['sql'] = $sql;
       $infos['params'] = $params;
      
       //exécution de la requête
       try{
          $prepare = $bdd->prepare($sql);
          $prepare->execute($params);
          // on stocke le résultat de la requête dans un ARRAY
          $result = $prepare->fetchall();
          $infos['result'] = (count($result)>0) ? $result[0]  : NULL;
       } catch(Exception $e){
          die('Erreur : '.$e->getMessage());
       }
    
    //  /!\ NE PAS OUBLIER DE FAIRE UN RETURN !!
    return $infos;
    
    }//Fin de la fonction
    
    //la function qui va compter le nombre de personnes inscrites
    function nombre_membre() {
    global $bdd; // déclaration globale de BDD
    $req = $bdd->query("SELECT id FROM utilisateurs")or die(print_r($bdd->errorInfo()));
    return $req->rowCount();
    }
    1. Modérateur

      et j'ai cette erreur : Fatal error: Cannot redeclare infos_membre_connecte() (previously declared in C:\wamp\www\rs\functions\membre.func.php:22) in C:\wamp\www\rs\functions\membre.func.php on line 51

      C'est que ta fonction était déjà déclarée !

      A la limite... dans ta page \membre.func.php
      tu peux modifier comme ceci :

      if(!function_exists('infos_membre_connecte')){
      /**
      * function qui va recuperer les infos de l'utilisateur connecté
      */
      function infos_membre_connecte(){
         global $bdd; // déclaration globale de BDD
         $infos=array();
      
         // Récupération variable de session PSEUDO
         $pseudo = isset($_SESSION['pseudo'])?$_SESSION['pseudo']:'';
         
         //préparation de la requete :
         $sql = "SELECT * FROM utilisateurs WHERE pseudo = :pseudo";
         $params = array(":pseudo"=>$pseudo);
        
         //stocke la requête et les paramêtres dans la variable de retour (cela facilite le debogage au cas où ! )
         $infos['sql'] = $sql;
         $infos['params'] = $params;
        
         //exécution de la requête
         try{
            $prepare = $bdd->prepare($sql);
            $prepare->execute($params);
            // on stocke le résultat de la requête dans un ARRAY
            $result = $prepare->fetchall();
            $infos['result'] = (count($result)>0) ? $result[0]  : NULL;
         } catch(Exception $e){
            die('Erreur : '.$e->getMessage());
         }
      
      //  /!\ NE PAS OUBLIER DE FAIRE UN RETURN !!
      return $infos;
      
      }//Fin de la fonction
      }
      
      
      if(!function_exists(' nombre_membre')){
      //la function qui va compter le nombre de personnes inscrites
      function nombre_membre() {
      global $bdd; // déclaration globale de BDD
      $req = $bdd->query("SELECT id FROM utilisateurs")or die(print_r($bdd->errorInfo()));
      return $req->rowCount();
      }
      
      }
      
    2. @jordane45erreur : Fatal error: Cannot redeclare nombre_membre() (previously declared in C:\wamp\www\rs\functions\membre.func.php:58) in C:\wamp\www\rs\functions\membre.func.php on line 58

      <?php
      //*********************************************//
      //Fichier : membre.func.php
      //*********************************************//
      ini_set("display_errors", "1");
      error_reporting(E_ALL);
      //-------------------------------------------
      // Include du fichier de connexion à la BDD
      //-------------------------------------------
      $DIR_SITE = $_SERVER['DOCUMENT_ROOT'] . "rs"; // chemin racine de ton site
      $CnxBDD = $DIR_SITE . "/functions/connect.php"; // emplacement du fichier depuis la racine de ton site
      
      if(file_exists($CnxBDD)){
       require_once($CnxBDD) ;
      }else{
       echo "<br><b>ERREUR !</b> Fichier $CnxBDD Introuvable";
      }
      
      if(!function_exists('infos_membre_connecte')){
      /**
      * function qui va recuperer les infos de l'utilisateur connecté
      */
      function infos_membre_connecte(){
         global $bdd; // déclaration globale de BDD
         $infos=array();
      
         // Récupération variable de session PSEUDO
         $pseudo = isset($_SESSION['pseudo'])?$_SESSION['pseudo']:'';
         
         //préparation de la requete :
         $sql = "SELECT * FROM utilisateurs WHERE pseudo = :pseudo";
         $params = array(":pseudo"=>$pseudo);
        
         //stocke la requête et les paramêtres dans la variable de retour (cela facilite le debogage au cas où ! )
         $infos['sql'] = $sql;
         $infos['params'] = $params;
        
         //exécution de la requête
         try{
            $prepare = $bdd->prepare($sql);
            $prepare->execute($params);
            // on stocke le résultat de la requête dans un ARRAY
            $result = $prepare->fetchall();
            $infos['result'] = (count($result)>0) ? $result[0]  : NULL;
         } catch(Exception $e){
            die('Erreur : '.$e->getMessage());
         }
      
      //  /!\ NE PAS OUBLIER DE FAIRE UN RETURN !!
      return $infos;
      
      }//Fin de la fonction
      }
      
      
      if(!function_exists(' nombre_membre')){
      //la function qui va compter le nombre de personnes inscrites
      function nombre_membre() {
      global $bdd; // déclaration globale de BDD
      $req = $bdd->query("SELECT id FROM utilisateurs")or die(print_r($bdd->errorInfo()));
      return $req->rowCount();
      }
      
      }
    3. Modérateur
      @Zakarya93Y'a un espace en trop
      if(!function_exists('nombre_membre')){
      
    4. @jordane45je mets le topic en résolu ou nous continuons ici ?