Function verifier_expediteur() en pdo

Résolu
Zakarya93 Messages postés 1026 Statut Membre -  
Zakarya93 Messages postés 1026 Statut Membre -
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

  • 1
  • 2
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.

Généré automatiquement par IA
sur la base des meilleures réponses
  1. ElementW Messages postés 5690 Statut Contributeur 1 293
     
    '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. Zakarya93 Messages postés 1026 Statut Membre 10
       
      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. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 832
       
      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. Zakarya93 Messages postés 1026 Statut Membre 10
     
    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. ElementW Messages postés 5690 Statut Contributeur 1 293
       
      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. Zakarya93 Messages postés 1026 Statut Membre 10
     
    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
  4. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 832
     
    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. Zakarya93 Messages postés 1026 Statut Membre 10
       
      J'obtiens : Notice: Undefined offset: 0 in C:\wamp\www\rs\functions\profile.func.php on line 98
      0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Zakarya93 Messages postés 1026 Statut Membre 10
     
    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. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 832
       
      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
  7. Zakarya93 Messages postés 1026 Statut Membre 10
     
    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. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 832
       
      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
  8. Zakarya93 Messages postés 1026 Statut Membre 10
     
    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
  9. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 832
     
    <?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
  10. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 832
     
    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
  11. Zakarya93 Messages postés 1026 Statut Membre 10
     
    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
  12. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 832
     
    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. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 832
       
      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
  13. Zakarya93 Messages postés 1026 Statut Membre 10
     
    si je l'ai repris ^^
    0
    1. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 832
       
      Pas quand tu as posté ton souci à la ligne 25 .... :-)
      0
  14. Zakarya93 Messages postés 1026 Statut Membre 10
     
    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. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 832
       
      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
  15. Zakarya93 Messages postés 1026 Statut Membre 10
     
    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
  16. Zakarya93 Messages postés 1026 Statut Membre 10
     
    Faut il d'abord que je crée ma function supprimer_invitation avant de le faire apparaitre ??
    0
  17. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 832
     
    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
  18. Zakarya93 Messages postés 1026 Statut Membre 10
     
    UP !

    J'ai ça qui s'affiche :

    accepter_demande =>
    demande_existe => 1
    verifier_expediteur => 0
    0
    1. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 832
       
      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
  19. Zakarya93 Messages postés 1026 Statut Membre 10
     
    Oui c'est bon, sauf que pour accepter_demande je dois avoir un 0 normalement
    0
    1. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 832
       
      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
  20. Zakarya93 Messages postés 1026 Statut Membre 10
     
    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
  21. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 832
     
    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