Infos bulle invitations qui ne part pas

Zakarya93 Messages postés 1026 Statut Membre -  
Zakarya93 Messages postés 1026 Statut Membre -
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. blackduck Messages postés 902 Statut Membre 97
     
    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. Zakarya93 Messages postés 1026 Statut Membre 10
       
      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. Zakarya93 Messages postés 1026 Statut Membre 10
       
      en gros elle reste affichée, elle force quoi
      0
  2. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 831
     
    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. Zakarya93 Messages postés 1026 Statut Membre 10
       
      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. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 831
       
      Et donc... quel code utilisés tu ???
      Que contient ta bdd ?
      0
    3. Zakarya93 Messages postés 1026 Statut Membre 10
       
      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. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 831
       
      Et ton code d'update ?
      0
    5. Zakarya93 Messages postés 1026 Statut Membre 10
       
      /*
      //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