Fatal error: Call to undefined function afficher_ibi_membres() [Résolu/Fermé]

Signaler
Messages postés
984
Date d'inscription
lundi 27 avril 2015
Statut
Membre
Dernière intervention
10 juin 2017
-
Messages postés
29170
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
8 août 2020
-
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

Messages postés
29170
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
8 août 2020
2 675
Bonjour
la fonction n'existe pas dans ton fichier de fonctions... normal qu'il ne la trouve pas !
Messages postés
984
Date d'inscription
lundi 27 avril 2015
Statut
Membre
Dernière intervention
10 juin 2017
8
oh non erreur bête, j'ai mis membres au lieu de messages --"
Messages postés
984
Date d'inscription
lundi 27 avril 2015
Statut
Membre
Dernière intervention
10 juin 2017
8
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 )
Messages postés
29170
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
8 août 2020
2 675
Même chose. .. cette fonction n'existe pas dans ton fichier !!

--
Messages postés
984
Date d'inscription
lundi 27 avril 2015
Statut
Membre
Dernière intervention
10 juin 2017
8
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;
}
Messages postés
29170
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
8 août 2020
2 675 >
Messages postés
984
Date d'inscription
lundi 27 avril 2015
Statut
Membre
Dernière intervention
10 juin 2017

Ah oui.. pardon.
Pas d'autres messages d'erreur ?
Vide le cache de ton navigateur et retestes..
Messages postés
984
Date d'inscription
lundi 27 avril 2015
Statut
Membre
Dernière intervention
10 juin 2017
8
marche pas :/ le code est bon ?
Messages postés
29170
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
8 août 2020
2 675
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
Messages postés
984
Date d'inscription
lundi 27 avril 2015
Statut
Membre
Dernière intervention
10 juin 2017
8
oulà mon site s'est deformé ^^ j'ai : http://www.noelshack.com/2015-26-1435247182-erreur.jpg
Messages postés
29170
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
8 août 2020
2 675
il faudrait le code source GÉNÉRÉ

--
Messages postés
984
Date d'inscription
lundi 27 avril 2015
Statut
Membre
Dernière intervention
10 juin 2017
8
<!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)
Messages postés
29170
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
8 août 2020
2 675 >
Messages postés
984
Date d'inscription
lundi 27 avril 2015
Statut
Membre
Dernière intervention
10 juin 2017

Hormis 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>