Fatal error: Call to undefined function afficher_ibi_membres()

Résolu
Bonjour,

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

ibi.func.php :

<?php 
//la function qui va nous permettre d'afficher l'info-bulle des invitations
function afficher_ibi_invitations(){
 global $bdd;
 $result=0;
 //Variables
 $pseudo_session = isset($_SESSION['pseudo'])?$_SESSION['pseudo']:NULL;

 if($pseudo_session){
  $sql = "SELECT COUNT(id_invitation) as NB
         FROM amis 
         WHERE (date_invitation = date_confirmation
         AND pseudo_dest=:pseudo_session)
      OR (pseudo_exp=:pseudo_session AND date_confirmation > date_vue) ";

   // je place les  params dans une variable avant de l'utiliser :
  $params = array(':pseudo_session' => $pseudo_session);
  try{
    $query = $bdd->prepare($sql);
    $query ->execute($params);  
    $req= $query->fetchall();
   
   $result= count($req)>0 ? $req[0]['NB']:0;
   
   }catch(Exception $e) {
     echo "<br>ERREUR ! ".$e->getMessage()."<br>";
     echo "<br>params : <br>";
     print_r($params);
   }
 } // Fin du  if($pseudo_session)
 // le return
 return $result;
}
//la function qui va nous permettre de mettre à jour la date_vue dans la bdd pour pouvoir cacher l'info-bulle 
function update_date_vue(){
global $bdd;

  //récupération des variables PROPREMENT !
  $pseudo_exp = isset($_SESSION['pseudo'])?$_SESSION['pseudo']:NULL;

 $result=0;
 if($pseudo_exp){
  $sql = "UPDATE amis
   SET active=1, date_vue=NOW()
         WHERE (pseudo_exp = :session_pseudo)";

  // je place les  params dans une variable avant de l'utiliser :
  $params = array('session_pseudo' => $pseudo_exp);
  
  $query = $bdd->prepare($sql);
  $query ->execute($params);  
  $requete = $query->fetchall();
 }
 // le return
 return $result;
}

//la function qui va nous permettre d'afficher l'info-bulle des messages
function afficher_ibi_messages(){
 global $bdd;
 $result=0;
 //Variables
 $pseudo_session = isset($_SESSION['pseudo'])?$_SESSION['pseudo']:NULL;

 if($pseudo_session){
  $sql = "SELECT COUNT(id_conversation) as NB
         FROM conversations
         WHERE pseudo_dest=:pseudo_session
      OR (pseudo_exp=:pseudo_session > date_vue) ";

   // je place les  params dans une variable avant de l'utiliser :
  $params = array(':pseudo_session' => $pseudo_session);
  try{
    $query = $bdd->prepare($sql);
    $query ->execute($params);  
    $req= $query->fetchall();
   
   $result= count($req)>0 ? $req[0]['NB']:0;
   
   }catch(Exception $e) {
     echo "<br>ERREUR ! ".$e->getMessage()."<br>";
     echo "<br>params : <br>";
     print_r($params);
   }
 } // Fin du  if($pseudo_session)
 // le return
 return $result;
}


menu.php :
<?php 
  $ibi = afficher_ibi_invitations();
  if($ibi !== '0')
  {
   ?>   
   <div class='ibi invitations'>
        <?php 
     echo $ibi;
     ?>
   </div> 
   <?php 
  }  

  $ibi = afficher_ibi_messages();
  if($ibi !== '0')
  {
   ?>   
   <div class='ibi messages'>
        <?php 
     echo $ibi;
     ?>
   </div> 
   <?php 
  }  
  
?>
<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></li>
      <li><a href="index.php?page=conversations">Messages</a></li>
      <li class="nbr"><?php echo nombre_membre() > 1 ? nombre_membre()." membres" : nombre_membre(). " membre"; ?></li>
       </ul>
</div>


Que faire ? merci d'avance ;)

4 réponses

  1. Modérateur
    Bonjour
    la fonction n'existe pas dans ton fichier de fonctions... normal qu'il ne la trouve pas !
    0
    1. oh non erreur bête, j'ai mis membres au lieu de messages --"
      0
    2. j'ai toujours cette erreur malgré la correction ( Fatal error: Call to undefined function afficher_ibi_messages() in C:\wamp\www\rs\body\menu.php on line 14 )
      0
  2. Modérateur
    Même chose. .. cette fonction n'existe pas dans ton fichier !!

    --
    0
    1. mais si c'est ca !
      //la function qui va nous permettre d'afficher l'info-bulle des messages
      function afficher_ibi_messages(){
       global $bdd;
       $result=0;
       //Variables
       $pseudo_session = isset($_SESSION['pseudo'])?$_SESSION['pseudo']:NULL;
      
       if($pseudo_session){
        $sql = "SELECT COUNT(id_conversation) as NB
               FROM conversations
               WHERE pseudo_dest=:pseudo_session
            OR (pseudo_exp=:pseudo_session > date_vue) ";
      
         // je place les  params dans une variable avant de l'utiliser :
        $params = array(':pseudo_session' => $pseudo_session);
        try{
          $query = $bdd->prepare($sql);
          $query ->execute($params);  
          $req= $query->fetchall();
         
         $result= count($req)>0 ? $req[0]['NB']:0;
         
         }catch(Exception $e) {
           echo "<br>ERREUR ! ".$e->getMessage()."<br>";
           echo "<br>params : <br>";
           print_r($params);
         }
       } // Fin du  if($pseudo_session)
       // le return
       return $result;
      }
      0
    2. Modérateur
      @Zakarya93Ah oui.. pardon.
      Pas d'autres messages d'erreur ?
      Vide le cache de ton navigateur et retestes..
      0
    3. marche pas :/ le code est bon ?
      0
  3. Modérateur
    Essayes ça :
    <?php 
    //-----------------------------------------------//
    //  Fichier : ibi.func.php
    //-----------------------------------------------//
    /*
    //la function qui va nous permettre d'afficher l'info-bulle des invitations
    */
    function afficher_ibi_invitations(){
     global $bdd;
     $result=0;
     //Variables
     $pseudo_session = isset($_SESSION['pseudo'])?$_SESSION['pseudo']:NULL;
    
     if($pseudo_session){
      $sql = "SELECT COUNT(id_invitation) as NB
             FROM amis 
             WHERE (date_invitation = date_confirmation
             AND pseudo_dest=:pseudo_session)
          OR (pseudo_exp=:pseudo_session AND date_confirmation > date_vue) ";
    
       // je place les  params dans une variable avant de l'utiliser :
      $params = array(':pseudo_session' => $pseudo_session);
      try{
        $query = $bdd->prepare($sql);
        $query ->execute($params);  
        $req= $query->fetchall();
       
       $result= count($req)>0 ? $req[0]['NB']:0;
       
       }catch(Exception $e) {
         echo "<br>ERREUR ! ".$e->getMessage()."<br>";
         echo "<br>params : <br>";
         print_r($params);
       }
     } // Fin du  if($pseudo_session)
     // le return
     return $result;
    }
    
    /*
    //la function qui va nous permettre de mettre à jour la date_vue dans la bdd pour pouvoir cacher l'info-bulle 
    */
    function update_date_vue(){
     global $bdd;
      //récupération des variables PROPREMENT !
      $pseudo_exp = isset($_SESSION['pseudo'])?$_SESSION['pseudo']:NULL;
     if($pseudo_exp){
      $sql = "UPDATE amis
               SET active=1
              , date_vue=NOW()
             WHERE pseudo_exp = :session_pseudo";
    
      // je place les  params dans une variable avant de l'utiliser :
      $params = array('session_pseudo' => $pseudo_exp);
      try{ 
       $query = $bdd->prepare($sql);
       $query ->execute($params);  
     }catch(Exception $e) {
         echo "<br>ERREUR ! ".$e->getMessage()."<br>";
         echo "<br>params : <br>";
         print_r($params);
       }
     }
    }
    
    /**
    *la function qui va nous permettre d'afficher l'info-bulle des messages
    */
    function afficher_ibi_messages(){
     global $bdd;
     $result=0;
     //Variables
     $pseudo_session = isset($_SESSION['pseudo'])?$_SESSION['pseudo']:NULL;
    
     if($pseudo_session){
      $sql = "SELECT COUNT(id_conversation) as NB
             FROM conversations
             WHERE pseudo_dest=:pseudo_session
          OR (pseudo_exp=:pseudo_session > date_vue) ";
    
       // je place les  params dans une variable avant de l'utiliser :
      $params = array(':pseudo_session' => $pseudo_session);
      try{
        $query = $bdd->prepare($sql);
        $query ->execute($params);  
        $req= $query->fetchall();
       
       $result= count($req)>0 ? $req[0]['NB']:0;
       
       }catch(Exception $e) {
         echo "<br>ERREUR ! ".$e->getMessage()."<br>";
         echo "<br>params : <br>";
         print_r($params);
       }
     } // Fin du  if($pseudo_session)
     // le return
     return $result;
    }
    


    Et ton fichier menu.php ( dans lequel tu as bien faire un INCLUDE de ta page ibi.func.php bien sûr...)
    <?php 
    // Fichier menu.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'>
               $ibi
            </div>"; 
       }  
      }
     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>"; 
       }  
     }
      $nombre_membre = nombre_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></li>
         <li><a href="index.php?page=conversations">Messages</a></li>
         <li class="nbr"><?php echo $nombre_membre ."membre" . ($nombre_membre> 1) ? "s" :  ""; ?></li>
       </ul>
    </div>
    

    Cordialement,
    Jordane
    0
    1. oulà mon site s'est deformé ^^ j'ai : http://www.noelshack.com/2015-26-1435247182-erreur.jpg
      0
  4. Modérateur
    il faudrait le code source GÉNÉRÉ

    --
    0
    1. <!DOCTYPE html>
      <html>
          <head>
            <link rel='stylesheet' href='css/style.css'>
          </head>
          <meta charset="UTF-8" >
          <body>
                <div id='content'>
                ??<div class='header'>
      Bienvenue xzak47<p><a href="index.php?page=logout">Se déconnecter</a></p>
      </div>?<div class='ibi invitations'>
                 1
              </div><div class='ibi messages'>
               0;
              </div><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></li>
           <li><a href="index.php?page=conversations">Messages</a></li>
           <li class="nbr">s</li>
         </ul>
      </div><div class="info">
              <div class="info">
       <p><a href="index.php?page=update_avatar">Changer votre photo de profil</a></p>
       <a href="index.php?page=update_avatar"><img src="avatar/CR7.jpg"" height='200' width='200' alt='avatar'></a>
       <p><strong>Email : </strong><em>xxx@gmail.com</em></p>
       <p><strong>Sexe : </strong><em>Homme</em></p>
       <p><strong>A propos de vous : </strong><em>Etape 27/30</em></p>
      </div>    </div>
          </body>


      (Adresse mail supprimée par la modération)
      0
    2. Modérateur
      @Zakarya93Hormis quelques petites erreurs de frappe... le code généré correspond EXACTEMENT à ce que te donne ta page....
      Si les éléments ne sont pas correctements placés... il y a de fortes chances que ce soit un souci de CSS ou de positionnement de tes éléments dans le code.....

      Si c'est le CSS... merci d'ouvrir une question dans la partie CSS du forum webmaster.

      Pour corriger les quelques petites erreurs, voici :
      <?php 
      // Fichier menu.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'>
                 $ibi
              </div>"; 
         }  
        }
       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>"; 
         }  
       }
        $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></li>
           <li><a href="index.php?page=conversations">Messages</a></li>
           <li class="nbr"><?php echo $nb_membre; ?></li>
         </ul>
      </div>
      
      0