Fatal error: Call to undefined function afficher_ibi_membres()

Résolu
Zakarya93 Messages postés 984 Date d'inscription   Statut Membre Dernière intervention   -  
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   -
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

jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
Bonjour
la fonction n'existe pas dans ton fichier de fonctions... normal qu'il ne la trouve pas !
0
Zakarya93 Messages postés 984 Date d'inscription   Statut Membre Dernière intervention   10
 
oh non erreur bête, j'ai mis membres au lieu de messages --"
0
Zakarya93 Messages postés 984 Date d'inscription   Statut Membre Dernière intervention   10
 
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
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
Même chose. .. cette fonction n'existe pas dans ton fichier !!

--
0
Zakarya93 Messages postés 984 Date d'inscription   Statut Membre Dernière intervention   10
 
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
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752 > Zakarya93 Messages postés 984 Date d'inscription   Statut Membre Dernière intervention  
 
Ah oui.. pardon.
Pas d'autres messages d'erreur ?
Vide le cache de ton navigateur et retestes..
0
Zakarya93 Messages postés 984 Date d'inscription   Statut Membre Dernière intervention   10
 
marche pas :/ le code est bon ?
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
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
Zakarya93 Messages postés 984 Date d'inscription   Statut Membre Dernière intervention   10
 
oulà mon site s'est deformé ^^ j'ai : http://www.noelshack.com/2015-26-1435247182-erreur.jpg
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
il faudrait le code source GÉNÉRÉ

--
0
Zakarya93 Messages postés 984 Date d'inscription   Statut Membre Dernière intervention   10
 
<!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
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752 > Zakarya93 Messages postés 984 Date d'inscription   Statut Membre Dernière intervention  
 
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>
0