Function verifier_expediteur() en pdo

Résolu
Bonjour,

Sachant que le code mysql_ que je dois convertir est :
//la function qui va vérifier si le membre connecté est l'expediteur 
function verifier_expediteur()

{

$query = mysql_query(""
SELECT COUNT(id_invitations)  FROM amis WHERE (pseudo_exp = '{$_SESSION['pseudo']}' AND pseudo_dest = '{$_GET['pseudo']}'
");
return mysql_result($query,0);
  
}


C'est bon si j'ai fais :
?>

//la function qui va vérifier si le membre connecté est l'expediteur 
function verifier_expediteur()

{

global $bdd;

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


  $sql = "SELECT active FROM amis 
         FROM amis
          WHERE (id_exp = :session_pseudo AND id_dest = :get_pseudo)
            OR  (id_ dest = :get_pseudo AND id_dest = :session_pseudo)";

  // je place les  params dans une variable avant de l'utiliser :
  $params = array('get_pseudo' => $id_exp , 'session_pseudo' => $id_dest) ;
  
  $query = $bdd->prepare($sql);
  $query ->execute($params);  
  $result = $query->fetchall();
 
 //On récupère le contenu de la colonne 'active'
  $active = isset($result) && count($result)>0 ? $result[0]['active'] : 0;
 
 // le return :
 // si active == 0 on retourne false .. sinon true :
 return $active == 0 ? false : true ;
}


Merci d'avance :)

31 réponses

Résumé de la discussion

Pour convertir une fonction PHP utilisant mysql_ en PDO, la problématique porte sur vérifier si l'expéditeur d'une invitation est l'utilisateur connecté et autorisé. Des paramètres PDO sont utilisés :session_pseudo et :get_pseudo, et COUNT(id_invitations) est renvoyé sous l'alias NB, ce qui permet une vérification simple et scalable. En cas de récupération, fetchAll fournit le tableau, NB est extrait et le code retourne ce nombre, tout en protégeant les variables et en évitant les injections. En pratique, la correction finale montre que le COUNT est nommé NB et que le retour s'effectue via $requete[0]['NB'], fournissant une valeur entière utilisable par d'autres contrôles.

Bobot (l’IA à votre service)
  1. Contributeur
    'lut
    C'est bon si j'ai fais
    As-tu testé sur un serveur local au moins?
    C'est pas que je veuille paraître méchant, mais démerdes-toi un peu tout seul, bon sang!
    De plus tu n'as fait qu'un vulgaire copier/coller d'un code qui t'as été donné et qui ne fait pas ce que tu souhaites ici.
    jordane45 s'est déjà tué à t'expliquer la démarche étape par étape... on ne va pas tout convertir à ta place.

    Ou si tu cherches quelqu'un pour le faire, pose une annonce sur un site de freelance ou un truc du genre. Toutefois il n'y a aucun mérite à ce qu'un ou des autres le fassent à ta place: TU dois être en mesure de comprendre le code et l'adapter à tes besoins, pas nous, car on sait déjà faire.
    from human import idiocy
    del idiocy
    1
    1. C'est vrai que j'abuse un peu trrop de sa gentillesse je reconnais...mais j'aimerai qu'il m'aide juste pour les 2-3 choses manquantes qu'il reste j'ai bientot fini
      0
    2. Modérateur
      Tu sais que si je te factuerai le temps passé comme je le fais pour mes clients. .. ça serait aux alentours de 300 euros la journée minimum ??

      Je vais voir ce que je peux faire ppur te le corriger. .. mais c'est clair que ça serait chouette que tu apprenes à le faire toi même. ..
      0
  2. Je pense que c'est exactement le même précédant code à appliquer, mais j'ai pas compris ce qu'il fallait modifier pour le

    SELECT COUNT(id_invitations)
    0
    1. Contributeur
      Lis (et comprends) ce tutoriel intégralement, et seulement une fois ça fait, reviens nous voir. N'oublie pas de tester le code donné dans chaque paragraphe avec un serveur local, pour que tu comprennes Comment Ça Marche.
      0
  3. Je demande simplement une correction :

    //la function qui va vérifier si le membre connecté est l'expediteur 
    function verifier_expediteur()
    
    global $bdd;
    
      //récupération des variables PROPREMENT !
      $pseudo_exp = isset($_SESSION['pseudo'])?$_SESSION['pseudo']:NULL;
      $pseudo_dest = isset($_GET['pseudo'])?$_GET['pseudo']:NULL;
    
    
      $sql = "SELECT COUNT
             FROM amis
              WHERE (pseudo_exp = :session_pseudo AND pseudo_dest = :get_pseudo)
                OR  (pseudo_ dest = :get_pseudo AND pseudo_dest = :session_pseudo)";
    
      // je place les  params dans une variable avant de l'utiliser :
      $params = array('get_pseudo' => $pseudo_exp , 'session_pseudo' => $pseudo_dest) ;
      
      $query = $bdd->prepare($sql);
      $query ->execute($params);  
      $result = $query->fetchall();
     
     //On récupère le contenu de la colonne 'count'
      $infos['result'] = (count($result)>0) ? $result[0]  : NULL;
     
     // le return :
     return $req->rowCount();
    }
    0
    1. Modérateur
      Ca doit donner un truc du genre :
      //la function qui va vérifier si le membre connecté est l'expediteur 
      function verifier_expediteur(){
      
      global $bdd;
      
        //récupération des variables PROPREMENT !
        $id_exp = isset($_SESSION['pseudo'])?$_SESSION['pseudo']:NULL;
        $id_dest = isset($_GET['pseudo'])?$_GET['pseudo']:NULL;
      
       $result=0;
       if($id_exp && $id_dest){
        $sql = "SELECT COUNT(id_invitations) as NB
               FROM amis
               WHERE (id_exp = :session_pseudo AND id_dest = :get_pseudo)";
      
        // je place les  params dans une variable avant de l'utiliser :
        $params = array('get_pseudo' => $id_exp , 'session_pseudo' => $id_dest) ;
        
        $query = $bdd->prepare($sql);
        $query ->execute($params);  
        $requete = $query->fetchall();
        $result = $requete[0]['NB'];
       }
       // le return le nombre d'invitations:
       return $result;
      }
      

      0
      1. J'obtiens : Notice: Undefined offset: 0 in C:\wamp\www\rs\functions\profile.func.php on line 98
        0
    2. Notice: Undefined offset: 0 in C:\wamp\www\rs\functions\profile.func.php on line 98

      <?php
      //-----------------------------
      //Profile.func.php 
      //-----------------------------
      // la fonction qui va recuperer les informations de la personne choisie par l'utilisateur
      function recuperer_info_membre_choisi($pseudo = NULL) {
      global $bdd; // déclaration globale de BDD
      
      $result = array();
      
      $sql = "SELECT * FROM utilisateurs WHERE pseudo=:pseudo" ;
      $query = $bdd->prepare($sql);
      $query->execute(array(':pseudo' =>$pseudo));
      $result=$query->fetchall();
      
      return $result;
      }
      
      //la function qui va vérifier si une demande existe entre les deux membres
      function demande_existe() {
       global $bdd; // déclaration globale de BDD
      
        //récupération des variables PROPREMENT !
        $pseudoSession = isset($_SESSION['pseudo'])?$_SESSION['pseudo']:NULL;
        $pseudoGet = isset($_GET['pseudo'])?$_GET['pseudo']:NULL;
      
        // je mets la requête dans une variable AVANT de l'utiliser
        // PS :  j'ai ajouté un ALIAS  (COUNT(id_invitation) as NB) afin de pouvoir plus facilement
        // utiliser le résultat de la requête...
        $sql = "SELECT COUNT(id_invitation) as NB
      	        FROM amis
                WHERE (pseudo_exp = :session_pseudo AND pseudo_dest = :get_pseudo)
                  OR  (pseudo_exp = :get_pseudo AND pseudo_dest = :session_pseudo)";
      
        // je place les  params dans une variable avant de l'utiliser :
        $params = array('get_pseudo' => $pseudoGet, 'session_pseudo' => $pseudoSession) ;
        
        $query = $bdd->prepare($sql);
        $query ->execute($params);  
        $result = $query->fetchall();
      	
        //on récupère le NB de ta requête...
         $nb = $result[0]['NB'];
        //On fait un RETURN pour envoyer le résultat vers ton code...
        return $nb;
      }
      
      //la function qui va verifier si le destinataire a accepté la demande
      function accepter_demande(){
        global $bdd;
      
        //récupération des variables PROPREMENT !
        $pseudo_exp = isset($_SESSION['pseudo'])?$_SESSION['pseudo']:NULL;
        $pseudo_dest = isset($_GET['pseudo'])?$_GET['pseudo']:NULL;
      
      
        $sql = "SELECT active FROM amis 
      	        FROM amis
                WHERE (pseudo_exp = :session_pseudo AND pseudo_dest = :get_pseudo)
                  OR  (pseudo_ dest = :get_pseudo AND pseudo_dest = :session_pseudo)";
      
        // je place les  params dans une variable avant de l'utiliser :
        $params = array('get_pseudo' => $pseudo_exp , 'session_pseudo' => $pseudo_dest) ;
        
        $query = $bdd->prepare($sql);
        $query ->execute($params);  
        $result = $query->fetchall();
      	
       //On récupère le contenu de la colonne 'active'
        $active = isset($result) && count($result)>0 ? $result[0]['active'] : 0;
       
       // le return :
       // si active == 0 on retourne false .. sinon true :
       return $active == 0 ? false : true ;
      }
      
      //la function qui va vérifier si le membre connecté est l'expediteur 
      function verifier_expediteur(){
      
      global $bdd;
      
        //récupération des variables PROPREMENT !
        $id_exp = isset($_SESSION['pseudo'])?$_SESSION['pseudo']:NULL;
        $id_dest = isset($_GET['pseudo'])?$_GET['pseudo']:NULL;
      
       $result=0;
       if($id_exp && $id_dest){
        $sql = "SELECT COUNT(id_invitations) as NB
               FROM amis
               WHERE (id_exp = :session_pseudo AND id_dest = :get_pseudo)";
      
        // je place les  params dans une variable avant de l'utiliser :
        $params = array('get_pseudo' => $id_exp , 'session_pseudo' => $id_dest) ;
        
        $query = $bdd->prepare($sql);
        $query ->execute($params);  
        $requete = $query->fetchall();
        $result = $requete[0]['NB'];
       }
       // le return le nombre d'invitations:
       return $result;
      }
      0
      1. Modérateur
        tu es sûr de ta requête ??
        Surtout au niveau du where
          WHERE (id_exp = :session_pseudo AND id_dest = :get_pseudo)"; 

        les champs id_exp et id_dest existent dans ta table ??

        Dans les autres requêtes on a utilisé les champs
         WHERE (pseudo_exp = :session_pseudo AND pseudo_dest = :get_pseudo)
        0
    3. C'est corrigé :
      <?php
      //-----------------------------
      //Profile.func.php 
      //-----------------------------
      // la fonction qui va recuperer les informations de la personne choisie par l'utilisateur
      function recuperer_info_membre_choisi($pseudo = NULL) {
      global $bdd; // déclaration globale de BDD
      
      $result = array();
      
      $sql = "SELECT * FROM utilisateurs WHERE pseudo=:pseudo" ;
      $query = $bdd->prepare($sql);
      $query->execute(array(':pseudo' =>$pseudo));
      $result=$query->fetchall();
      
      return $result;
      }
      
      //la function qui va vérifier si une demande existe entre les deux membres
      function demande_existe() {
       global $bdd; // déclaration globale de BDD
      
        //récupération des variables PROPREMENT !
        $pseudoSession = isset($_SESSION['pseudo'])?$_SESSION['pseudo']:NULL;
        $pseudoGet = isset($_GET['pseudo'])?$_GET['pseudo']:NULL;
      
        // je mets la requête dans une variable AVANT de l'utiliser
        // PS :  j'ai ajouté un ALIAS  (COUNT(id_invitation) as NB) afin de pouvoir plus facilement
        // utiliser le résultat de la requête...
        $sql = "SELECT COUNT(id_invitation) as NB
      	        FROM amis
                WHERE (pseudo_exp = :session_pseudo AND pseudo_dest = :get_pseudo)
                  OR  (pseudo_exp = :get_pseudo AND pseudo_dest = :session_pseudo)";
      
        // je place les  params dans une variable avant de l'utiliser :
        $params = array('get_pseudo' => $pseudoGet, 'session_pseudo' => $pseudoSession) ;
        
        $query = $bdd->prepare($sql);
        $query ->execute($params);  
        $result = $query->fetchall();
      	
        //on récupère le NB de ta requête...
         $nb = $result[0]['NB'];
        //On fait un RETURN pour envoyer le résultat vers ton code...
        return $nb;
      }
      
      //la function qui va verifier si le destinataire a accepté la demande
      function accepter_demande(){
        global $bdd;
      
        //récupération des variables PROPREMENT !
        $pseudo_exp = isset($_SESSION['pseudo'])?$_SESSION['pseudo']:NULL;
        $pseudo_dest = isset($_GET['pseudo'])?$_GET['pseudo']:NULL;
      
      
        $sql = "SELECT active FROM amis 
      	        FROM amis
                WHERE (pseudo_exp = :session_pseudo AND pseudo_dest = :get_pseudo)
                  OR  (pseudo_ dest = :get_pseudo AND pseudo_dest = :session_pseudo)";
      
        // je place les  params dans une variable avant de l'utiliser :
        $params = array('get_pseudo' => $pseudo_exp , 'session_pseudo' => $pseudo_dest) ;
        
        $query = $bdd->prepare($sql);
        $query ->execute($params);  
        $result = $query->fetchall();
      	
       //On récupère le contenu de la colonne 'active'
        $active = isset($result) && count($result)>0 ? $result[0]['active'] : 0;
       
       // le return :
       // si active == 0 on retourne false .. sinon true :
       return $active == 0 ? false : true ;
      }
      
      //la function qui va vérifier si le membre connecté est l'expediteur 
      function verifier_expediteur(){
      
      global $bdd;
      
        //récupération des variables PROPREMENT !
        $pseudo_exp = isset($_SESSION['pseudo'])?$_SESSION['pseudo']:NULL;
        $pseudo_dest = isset($_GET['pseudo'])?$_GET['pseudo']:NULL;
      
       $result=0;
       if($pseudo_exp && $pseudo_dest){
        $sql = "SELECT COUNT(id_invitations) as NB
               FROM amis
               WHERE (pseudo_exp = :session_pseudo AND pseudo_dest = :get_pseudo)";
      
        // je place les  params dans une variable avant de l'utiliser :
        $params = array('get_pseudo' => $id_exp , 'session_pseudo' => $id_dest) ;
        
        $query = $bdd->prepare($sql);
        $query ->execute($params);  
        $requete = $query->fetchall();
        $result = $requete[0]['NB'];
       }
       // le return le nombre d'invitations:
       return $result;
      }


      Mais j'ai ces 3 erreurs :
      Notice: Undefined variable: id_exp in C:\wamp\www\rs\functions\profile.func.php on line 93

      Notice: Undefined variable: id_dest in C:\wamp\www\rs\functions\profile.func.php on line 93

      Notice: Undefined offset: 0 in C:\wamp\www\rs\functions\profile.func.php on line 98
      0
      1. Modérateur
        Tu fais des copier/coller ... dans réflechir et sans regarder ce que tu fais...
        Je t'ai parlé des CHAMPS de ta table .. pas des variables ....
        Il fallait faire un "mixte" de te ancienne ligne et de la nouvelle.....

        bref :
        //la function qui va vérifier si le membre connecté est l'expediteur 
        function verifier_expediteur(){
        
        global $bdd;
        
          //récupération des variables PROPREMENT !
          $pseudo_exp = isset($_SESSION['pseudo'])?$_SESSION['pseudo']:NULL;
          $pseudo_dest = isset($_GET['pseudo'])?$_GET['pseudo']:NULL;
        
         $result=0;
         if($pseudo_exp && $pseudo_dest){
          $sql = "SELECT COUNT(id_invitations) as NB
                 FROM amis
                 WHERE (pseudo_exp = :session_pseudo AND pseudo_dest = :get_pseudo)";
        
          // je place les  params dans une variable avant de l'utiliser :
          $params = array('get_pseudo' => $pseudo_exp , 'session_pseudo' => $pseudo_dest) ;
          
          $query = $bdd->prepare($sql);
          $query ->execute($params);  
          $requete = $query->fetchall();
          $result = (count($requete)>0)?$requete[0]['NB']:0;
         }
         // le return le nombre d'invitations:
         return $result;
        }
        
        
        0
    4. Non j'avais juste mal modifié ^^
      sinon j'ai : Parse error: syntax error, unexpected '}' in C:\wamp\www\rs\pages\profile.php on line 45

      <?php
      //-----------------------------
       //Profile.php 
      //-----------------------------
      
      include_once('body/header.php');
      include_once('body/menu.php');
      ?>
      <div class='info'>
      <?php
      if(!function_exists('recuperer_info_membre_choisi')){
       echo "ERREUR : La fonction recuperer_info_membre_choisi n'existe pas ! ";
      }
      $pseudo = isset($_GET['pseudo'])?$_GET['pseudo']:NULL;
      $arr_infos = recuperer_info_membre_choisi($pseudo);
      
      if(count($arr_infos)>0 && $pseudo != $_SESSION['pseudo']){
      
       foreach($arr_infos as $R) {
      	if(demande_existe() == 0){
          echo "<div class='error'>
      	          Vous n'êtes pas ami(e) avec ".$R['pseudo']."<br />
      	         <a href='index.php?page=envoi&pseudo=".$R['pseudo']."'>Envoyer une invitation</a>
      			</div>";		
      	        }else if(accepter_demande() == 0 && verifier_expediteur() == 1){
      				
      				?>
      				    <div class='success'>Demande envoyée 
      					<a href="">Annuler la demande</a></div>
      					
                      <?php
      			}else if(accepter_demande() == 0 && verifier_expediteur() == 0){
      				?>
      			         <div class='success'>Demande en cours<br />
      					 "Verifiez vos invitations"
      					 </div>
      			    <?php
      }
                  }
           echo"<img src='avatar/". $R['avatar']."' height='200' width='200' alt='avatar'>";
           echo "<p><strong>Email : </strong><em>".$R['email']."</em></p>";
           echo "<p><strong>Sexe : </strong><em>".$R['sexe']."</em></p>";
           echo "<p><strong>A propos de vous : </strong><em>".$R['apropos']."</em></p>";
       }
      }else{
      	header("Location:index.php?page=membre");	
      }
      ?>
      </div>
      0
      1. Modérateur
        <?php
        //-----------------------------
         //Profile.php 
        //-----------------------------
        
        include_once('body/header.php');
        include_once('body/menu.php');
        
        $pseudo = isset($_GET['pseudo'])?$_GET['pseudo']:NULL;
        $arr_infos = recuperer_info_membre_choisi($pseudo);
        
        echo "<div class='info'>";
        
         if(count($arr_infos)>0 && $pseudo != $_SESSION['pseudo']){
        
          foreach($arr_infos as $R) {
          if(demande_existe() == 0){
             echo "<div class='error'>
                   Vous n'êtes pas ami(e) avec ".$R['pseudo']."<br />
                  <a href='index.php?page=envoi&pseudo=".$R['pseudo']."'>Envoyer une invitation</a>
                </div>";  
            }else if(accepter_demande() == 0 && verifier_expediteur() == 1){    
             echo "<div class='success'>Demande envoyée 
             <a href=''>Annuler la demande</a></div>";     
           }else if(accepter_demande() == 0 && verifier_expediteur() == 0){
                echo "<div class='success'>Demande en cours<br />
              Verifiez vos invitations
              </div>";     
             }
             echo"<img src='avatar/". $R['avatar']."' height='200' width='200' alt='avatar'>";
             echo "<p><strong>Email : </strong><em>".$R['email']."</em></p>";
             echo "<p><strong>Sexe : </strong><em>".$R['sexe']."</em></p>";
             echo "<p><strong>A propos de vous : </strong><em>".$R['apropos']."</em></p>";
          }//fin du foreach  
         }else{
          header("Location:index.php?page=membre"); 
         }
         echo "</div>";
        ?>
        


        Cordialement,
        Jordane
        0
        1. Modérateur
          Dans l'idéal il faut éviter d'appeler les différentes fonctions dans tes IFs ...
          il est préférable de les lancer UNE SEULE fois .. puis de tester avec des variables....

          comme ceci :
          <?php
          //-----------------------------
           //Profile.php 
          //-----------------------------
          
          include_once('body/header.php');
          include_once('body/menu.php');
          
          $pseudo = isset($_GET['pseudo'])?$_GET['pseudo']:NULL;
          $arr_infos = recuperer_info_membre_choisi($pseudo);
          $accepter_demande = accepter_demande();
          $demande_existe = demande_existe();
          $verifier_expediteur = verifier_expediteur();
          
          echo "<div class='info'>";
          
           if(count($arr_infos)>0 && $pseudo != $_SESSION['pseudo']){
          
            foreach($arr_infos as $R) {
            if($demande_existe == 0){
               echo "<div class='error'>
                     Vous n'êtes pas ami(e) avec ".$R['pseudo']."<br />
                    <a href='index.php?page=envoi&pseudo=".$R['pseudo']."'>Envoyer une invitation</a>
                  </div>";  
              }else if( $accepter_demande == 0 && $verifier_expediteur == 1){    
               echo "<div class='success'>Demande envoyée 
               <a href=''>Annuler la demande</a></div>";     
             }else if($accepter_demande == 0 && $verifier_expediteur == 0){
                  echo "<div class='success'>Demande en cours<br />
                Verifiez vos invitations
                </div>";     
               }
               echo"<img src='avatar/". $R['avatar']."' height='200' width='200' alt='avatar'>";
               echo "<p><strong>Email : </strong><em>".$R['email']."</em></p>";
               echo "<p><strong>Sexe : </strong><em>".$R['sexe']."</em></p>";
               echo "<p><strong>A propos de vous : </strong><em>".$R['apropos']."</em></p>";
            }//fin du foreach  
           }else{
            header("Location:index.php?page=membre"); 
           }
           echo "</div>";
          ?>
          
          

          0
          1. J'ai : Parse error: syntax error, unexpected '' (T_ENCAPSED_AND_WHITESPACE), expecting identifier (T_STRING) or variable (T_VARIABLE) or number (T_NUM_STRING) in C:\wamp\www\rs\pages\profile.php on line 25

            <?php
            //-----------------------------
             //Profile.php 
            //-----------------------------
            
            include_once('body/header.php');
            include_once('body/menu.php');
            
            $pseudo = isset($_GET['pseudo'])?$_GET['pseudo']:NULL;
            
            echo "<div class='info'>";
            
             $arr_infos = recuperer_info_membre_choisi($pseudo);
            
             if(count($arr_infos)>0 && $pseudo != $_SESSION['pseudo']){
            
              foreach($arr_infos as $R) {
              if(demande_existe() == 0){
                 echo "<div class='error'>
                       Vous n'êtes pas ami(e) avec ".$R['pseudo']."<br />
                      <a href='index.php?page=envoi&pseudo=".$R['pseudo']."'>Envoyer une invitation</a>
               </div>";  
                }else if(accepter_demande() == 0 && verifier_expediteur() == 1){    
                 echo "<div class='success'>Demande envoyée 
                 <a href='index.php?page=annuler&pseudo='.$R['pseudo']."'>Annuler la demande</a></div>";     
               }else if(accepter_demande() == 0 && verifier_expediteur() == 0){
                    echo "<div class='success'>Demande en cours<br />
                  Verifiez vos invitations
                  </div>";     
                 }
                 echo"<img src='avatar/". $R['avatar']."' height='200' width='200' alt='avatar'>";
                 echo "<p><strong>Email : </strong><em>".$R['email']."</em></p>";
                 echo "<p><strong>Sexe : </strong><em>".$R['sexe']."</em></p>";
                 echo "<p><strong>A propos de vous : </strong><em>".$R['apropos']."</em></p>";
              }//fin du foreach  
             }else{
              header("Location:index.php?page=membre"); 
             }
             echo "</div>";
            ?>
            0
            1. Modérateur
              erreur de quotes

                echo "<div class='success'>Demande envoyée 
                   <a href='index.php?page=annuler&pseudo=".$R['pseudo']."'>Annuler la demande</a></div>";    
              


              Cordialement,
              Jordane
              0
              1. Modérateur
                Tu n'as pas repris le dernier code que je t'ai mis à dispo !!!!

                <?php
                //-----------------------------
                 //Profile.php 
                //-----------------------------
                
                include_once('body/header.php');
                include_once('body/menu.php');
                
                $pseudo = isset($_GET['pseudo'])?$_GET['pseudo']:NULL;
                $arr_infos = recuperer_info_membre_choisi($pseudo);
                $accepter_demande = accepter_demande();
                $demande_existe = demande_existe();
                $verifier_expediteur = verifier_expediteur();
                
                echo "<div class='info'>";
                
                 if(count($arr_infos)>0 && $pseudo != $_SESSION['pseudo']){
                
                  foreach($arr_infos as $R) {
                  if($demande_existe == 0){
                     echo "<div class='error'>
                           Vous n'êtes pas ami(e) avec ".$R['pseudo']."<br />
                          <a href='index.php?page=envoi&pseudo=".$R['pseudo']."'>Envoyer une invitation</a>
                        </div>";  
                    }else if( $accepter_demande == 0 && $verifier_expediteur == 1){    
                     echo "<div class='success'>Demande envoyée 
                     <a href=''>Annuler la demande</a></div>";     
                   }else if($accepter_demande == 0 && $verifier_expediteur == 0){
                        echo "<div class='success'>Demande en cours<br />
                      Verifiez vos invitations
                      </div>";     
                     }
                     echo"<img src='avatar/". $R['avatar']."' height='200' width='200' alt='avatar'>";
                     echo "<p><strong>Email : </strong><em>".$R['email']."</em></p>";
                     echo "<p><strong>Sexe : </strong><em>".$R['sexe']."</em></p>";
                     echo "<p><strong>A propos de vous : </strong><em>".$R['apropos']."</em></p>";
                  }//fin du foreach  
                 }else{
                  header("Location:index.php?page=membre"); 
                 }
                 echo "</div>";
                ?>
                
                
                0
            2. si je l'ai repris ^^
              0
              1. Modérateur
                Pas quand tu as posté ton souci à la ligne 25 .... :-)
                0
            3. C'est normal que le "Annuler invitation" ne s'affiche pas ?

              <?php
              //-----------------------------
               //Profile.php 
              //-----------------------------
              
              include_once('body/header.php');
              include_once('body/menu.php');
              
              $pseudo = isset($_GET['pseudo'])?$_GET['pseudo']:NULL;
              $arr_infos = recuperer_info_membre_choisi($pseudo);
              $accepter_demande = accepter_demande();
              $demande_existe = demande_existe();
              $verifier_expediteur = verifier_expediteur();
              
              echo "<div class='info'>";
              
               if(count($arr_infos)>0 && $pseudo != $_SESSION['pseudo']){
              
                foreach($arr_infos as $R) {
                if($demande_existe == 0){
                   echo "<div class='error'>
                         Vous n'êtes pas ami(e) avec ".$R['pseudo']."<br />
                        <a href='index.php?page=envoi&pseudo=".$R['pseudo']."'>Envoyer une invitation</a>
                      </div>";  
                  }else if( $accepter_demande == 0 && $verifier_expediteur == 1){    
                   echo "<div class='success'>Demande envoyée 
                   <a href='index.php?page=annuler&pseudo=".$R['pseudo']."'>Annuler la demande</a></div>";   
                 }else if($accepter_demande == 0 && $verifier_expediteur == 0){
                      echo "<div class='success'>Demande en cours<br />
                    Verifiez vos invitations
                    </div>";     
                   }
                   echo"<img src='avatar/". $R['avatar']."' height='200' width='200' alt='avatar'>";
                   echo "<p><strong>Email : </strong><em>".$R['email']."</em></p>";
                   echo "<p><strong>Sexe : </strong><em>".$R['sexe']."</em></p>";
                   echo "<p><strong>A propos de vous : </strong><em>".$R['apropos']."</em></p>";
                }//fin du foreach  
               }else{
                header("Location:index.php?page=membre"); 
               }
               echo "</div>";
              ?>
              0
              1. Modérateur
                Ca dépend ....
                Est-ce que la demande a été acceptée ? ....

                Ca n'apparait que si les conditions sont respectées :
                if( $accepter_demande == 0 && $verifier_expediteur == 1)
                
                0
            4. Non, par contre j'ai "Demande en cours" pour les 2 comptes alors que l'émetteur c'est le compte "xzak47" et le recepteur est "jean"
              0
              1. Faut il d'abord que je crée ma function supprimer_invitation avant de le faire apparaitre ??
                0
                1. Modérateur
                  Il faut vérifier ce que retourne tes fonctions...
                  <?php
                  //-----------------------------
                   //Profile.php 
                  //-----------------------------
                  
                  include_once('body/header.php');
                  include_once('body/menu.php');
                  
                  $pseudo = isset($_GET['pseudo'])?$_GET['pseudo']:NULL;
                  $arr_infos = recuperer_info_membre_choisi($pseudo);
                  $accepter_demande = accepter_demande();
                  $demande_existe = demande_existe();
                  $verifier_expediteur = verifier_expediteur();
                  
                  // Le temps des tests :
                  echo "<div id='debug'>
                              <br>accepter_demande => ".$accepter_demande."
                              <br>demande_existe => ".$demande_existe."
                              <br>verifier_expediteur => ".$verifier_expediteur."
                             </div>";
                  
                  
                  echo "<div class='info'>";
                  
                   if(count($arr_infos)>0 && $pseudo != $_SESSION['pseudo']){
                  
                    foreach($arr_infos as $R) {
                    if($demande_existe == 0){
                       echo "<div class='error'>
                             Vous n'êtes pas ami(e) avec ".$R['pseudo']."<br />
                            <a href='index.php?page=envoi&pseudo=".$R['pseudo']."'>Envoyer une invitation</a>
                          </div>";  
                      }else if( $accepter_demande == 0 && $verifier_expediteur == 1){    
                       echo "<div class='success'>Demande envoyée 
                       <a href='index.php?page=annuler&pseudo=".$R['pseudo']."'>Annuler la demande</a></div>";   
                     }else if($accepter_demande == 0 && $verifier_expediteur == 0){
                          echo "<div class='success'>Demande en cours<br />
                        Verifiez vos invitations
                        </div>";     
                       }
                       echo"<img src='avatar/". $R['avatar']."' height='200' width='200' alt='avatar'>";
                       echo "<p><strong>Email : </strong><em>".$R['email']."</em></p>";
                       echo "<p><strong>Sexe : </strong><em>".$R['sexe']."</em></p>";
                       echo "<p><strong>A propos de vous : </strong><em>".$R['apropos']."</em></p>";
                    }//fin du foreach  
                   }else{
                    header("Location:index.php?page=membre"); 
                   }
                   echo "</div>";
                  ?>
                  
                  

                  0
                  1. UP !

                    J'ai ça qui s'affiche :

                    accepter_demande =>
                    demande_existe => 1
                    verifier_expediteur => 0
                    0
                    1. Modérateur
                      Pourquoi "UP" ???
                      Tant que tu ne répondais pas à mes questions... de toutes façons on ne pouvait pas avancer ...... !!!!!

                      Donc... selon toi (il y n'y a que toi qui peu le savoir.. (pas nous..) ..) ... est ce que les valeurs de tes variables :

                      accepter_demande =>
                      demande_existe => 1
                      verifier_expediteur => 0

                      correspond bien à ce que tu devrais obtenir ??

                      => Autrement dit... est-ce que c'est conforme à ce que tu attends .. et à ce que tu as dans ta BDD ??
                      0
                  2. Oui c'est bon, sauf que pour accepter_demande je dois avoir un 0 normalement
                    0
                    1. Modérateur
                      la fonction accepter_demande .. elle ne retourne pas FALSE (et non pas 0 ) ?
                      Car là .. si rien n'apparait .. je pense que c'est pour ça.

                      A la limite .. remontre nous le code de ta fonction accepter_demande .

                      Ensuite... reprenons tes IF pour savoir si, en partant des valeurs affichées... tu dois afficher ton lien ou pas.
                      Donc le code de ton if est :
                        if($demande_existe == 0){
                           echo "<div class='error'>
                                 Vous n'êtes pas ami(e) avec ".$R['pseudo']."<br />
                                <a href='index.php?page=envoi&pseudo=".$R['pseudo']."'>Envoyer une invitation</a>
                              </div>";  
                          }else if( $accepter_demande == 0 && $verifier_expediteur == 1){    
                           echo "<div class='success'>Demande envoyée 
                           <a href='index.php?page=annuler&pseudo=".$R['pseudo']."'>Annuler la demande</a></div>";   
                         }else if($accepter_demande == 0 && $verifier_expediteur == 0){
                              echo "<div class='success'>Demande en cours<br />
                            Verifiez vos invitations
                            </div>";     
                           }
                      
                      


                      To tu es dans le cas :

                      accepter_demande => 0
                      verifier_expediteur => 0

                      Donc .. normal que le lien "Annuler la demande" n'apparaisse pas....
                      0
                  3. 1/
                    //la function qui va verifier si le destinataire a accepté la demande
                    function accepter_demande(){
                      global $bdd;
                    
                      //récupération des variables PROPREMENT !
                      $pseudo_exp = isset($_SESSION['pseudo'])?$_SESSION['pseudo']:NULL;
                      $pseudo_dest = isset($_GET['pseudo'])?$_GET['pseudo']:NULL;
                    
                    
                      $sql = "SELECT active FROM amis 
                    	        FROM amis
                              WHERE (pseudo_exp = :session_pseudo AND pseudo_dest = :get_pseudo)
                                OR  (pseudo_ dest = :get_pseudo AND pseudo_dest = :session_pseudo)";
                    
                      // je place les  params dans une variable avant de l'utiliser :
                      $params = array('get_pseudo' => $pseudo_exp , 'session_pseudo' => $pseudo_dest) ;
                      
                      $query = $bdd->prepare($sql);
                      $query ->execute($params);  
                      $result = $query->fetchall();
                    	
                     //On récupère le contenu de la colonne 'active'
                      $active = isset($result) && count($result)>0 ? $result[0]['active'] : 0;
                     
                     // le return :
                     // si active == 0 on retourne false .. sinon true :
                     return $active == 0 ? false : true ;
                    }


                    2/ Il faut que je fasse :
                    }else if( $accepter_demande == 1 && $verifier_expediteur == 1){    
                    ?
                    0
                    1. Modérateur
                      1 /
                      remplaces la ligne
                       return $active == 0 ? false : true ;
                      


                      par
                       return $active == 0 ? 0 : 1 ;
                      


                      2/

                      2/ Il faut que je fasse :
                      }else if( $accepter_demande == 1 && $verifier_expediteur == 1){
                      ?

                      Ben je ne sais pas .... ... que veux tu obtenir exactement ?

                      0
                      • 1
                      • 2