Fatal error: Call to undefined function nombre_membre()

Zakarya93 Messages postés 1026 Statut Membre -  
Zakarya93 Messages postés 1026 Statut 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. Pitet Messages postés 2845 Statut Membre 530
     
    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
    0
    1. Zakarya93 Messages postés 1026 Statut Membre 10
       
      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');  ?>
      0
    2. Pitet Messages postés 2845 Statut Membre 530
       
      Dans quel fichier est définie la fonction nombre_membre() ?
      0
  2. Zakarya93 Messages postés 1026 Statut Membre 10
     
    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();
    }
    0
    1. Pitet Messages postés 2845 Statut Membre 530
       
      Parfait. Et ce fichier est-il inclus dans le fichier index.php ou menu.php ?
      0
      1. Zakarya93 Messages postés 1026 Statut Membre 10 > Pitet Messages postés 2845 Statut Membre
         
        oui 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.
        0
    2. Pitet Messages postés 2845 Statut Membre 530
       
      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.
      0
      1. Zakarya93 Messages postés 1026 Statut Membre 10 > Pitet Messages postés 2845 Statut Membre
         
        j'ai maintenant tout en décalé...
        0
    3. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 831
       
      tout décalé ???
      0
  3. Zakarya93 Messages postés 1026 Statut Membre 10
     
    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();
    }
    0
    1. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 831
       

      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();
      }
      
      }
      
      0
      1. Zakarya93 Messages postés 1026 Statut Membre 10 > jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention  
         
        erreur : 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();
        }
        
        }
        0
      2. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 831 > Zakarya93 Messages postés 1026 Statut Membre
         
        Y'a un espace en trop
        if(!function_exists('nombre_membre')){
        
        0
      3. Zakarya93 Messages postés 1026 Statut Membre 10 > jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention  
         
        merci beaucoup je n'ai donc plus d'erreurs :)
        mais mon site est tout deformé : http://www.noelshack.com/2015-29-1436974898-capture.jpg

        c'est horrible !!!

        j'aimerai supprimer la barre dans le cadre blanc, et tout restabiliser
        poursuivons ici ? : https://forums.commentcamarche.net/forum/affich-32244901-deplacer-barre-de-menu-en-haut#p32245886
        0
      4. Zakarya93 Messages postés 1026 Statut Membre 10 > jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention  
         
        je mets le topic en résolu ou nous continuons ici ?
        0