Infos bulle invitations qui ne part pas

Bonjour,

Mon info bulle invitation ne part pas malgré que j'ai vu accepté l'invitation et vu le message "vous êtes maintenant amis"

soucis de fonction ?
//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_session = isset($_SESSION['pseudo'])?$_SESSION['pseudo']:NULL;
 if( $pseudo_session){
  $sql = "UPDATE amis
             SET date_vue=NOW()
             WHERE pseudo_dest = :session_pseudo 
              AND active=0";

  // je place les  params dans une variable avant de l'utiliser :
  $params = array(':session_pseudo' =>  $pseudo_session);
  try{ 
   $query = $bdd->prepare($sql);
   $query ->execute($params);  
 }catch(Exception $e) {
     echo "<br>ERREUR ! ".$e->getMessage()."<br>";
     echo "<br>params : <br>";
     print_r($params);
   }
 }
}

2 réponses

  1. Salut,

    Pour moi ce code ne fait que vérifier si la variable $_SESSION est bien instanciée pour mettre à jour la variable date_vue en base de donnée. Il n'y a pas de redirection vers une autre page ou de rechargement de page.
    D'où par l'exécution de ce code et qu'attendais tu comme résultat?
    0
    1. je voulais que l'info bulle s'en aille après avoir accepté l'invtitation, en gros si l'active est égal à 0, elle ne s'affichera pas. Quand je refuse l'invitation, ça marche pas mais quand je l'accepte
      0
    2. en gros elle reste affichée, elle force quoi
      0
  2. Modérateur
    Bonjour,

    Retire ceci :
     AND active=0";
    


    Et ainsi.. que l'invitation soit refusée (active = 0 ) ou acceptée (active=1)... ça mettra à jour ta date vue....
    et donc par conséquent.. tu ne devrais plus voir ton info-bulle (qui,rappelons le.. s'affiche par l'intermédiaire d'un autre code que celui que tu nous montres)
    0
    1. C'est reglé pour lorsque je refuse l'invitation mais lorsque j'accepte, l'info bulle reste pour les 2 pseudos (emetteur et recepteur) malgré que j'ai vu la notification "vous êtes desormais amis avec ..."
      0
    2. Modérateur
      Et donc... quel code utilisés tu ???
      Que contient ta bdd ?
      0
    3. code invitations.php :
      <?php 
      require_once('functions/membre.func.php');
      include_once('body/header.php');
      include_once('body/menu.php');
      ?>
      <h3>Vos invitations</h3>
      <?php
      $invitations = recup_invitations();
      $invitations_acceptees =invitation_acceptee();
      
        if(count($invitations)>0){
          foreach($invitations as $R) {
          $invit_exp = $R['pseudo_exp'];
          $avatar = $R['avatar'];
          $active = $R['active'];
         
           if($active == 0){ 
              echo "<img src='avatar/$avatar' height='100' width='100' alt='avatar'></img>";
              echo "<div class='error'>";
              echo " $invit_exp a voulu vous ajouter comme ami(e)<br />";
              echo " <a href='index.php?page=accepter&pseudo=$invit_exp'>Accepter</a>|<a href='index.php?page=refuser&pseudo=$invit_exp'> Refuser</a>";
              echo "</div>";
           }else {     
            echo" <div class='success'>Vous êtes désormais ami(e) avec $invit_exp </div>";
          }//fin du IF active
        } // fin du FOREACH
        }else if(invitation_acceptee() == true){
      	    foreach($invitations_acceptees as $invitation_acceptee)
      		{
      		update_date_vue();	
      		?>	
      		<div class='success'><?php echo $invitation_acceptee['pseudo_dest']; ?> a accepté votre invitation</div>
      		<?php 	
      		}
       } else {
         echo "<div class='error'>Vous n'avez pas d'invitations</div>";
       }//fin du if(count


      dans ce code, figure aussi le uptade_date_vue d'ailleurs ^^

      sinon dans la bdd j'ai un active = 1, le date confirmation qui est bien à l'heure de confimation mais un date_vue à 0000000
      0
    4. Modérateur
      Et ton code d'update ?
      0
    5. /*
      //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_session = isset($_SESSION['pseudo'])?$_SESSION['pseudo']:NULL;
       if( $pseudo_session){
        $sql = "UPDATE amis
                   SET date_vue=NOW()
                   WHERE pseudo_dest = :session_pseudo";
      
        // je place les  params dans une variable avant de l'utiliser :
        $params = array(':session_pseudo' =>  $pseudo_session);
        try{ 
         $query = $bdd->prepare($sql);
         $query ->execute($params);  
       }catch(Exception $e) {
           echo "<br>ERREUR ! ".$e->getMessage()."<br>";
           echo "<br>params : <br>";
           print_r($params);
         }
       }
      }
      0