Parse error: syntax error, unexpected '"', expecting ',' or ';'

Résolu
Bonjour,

J'ai cette erreur : Parse error: syntax error, unexpected '"', expecting ',' or ';' in C:\wamp\www\rs\pages\profile.php on line 35

<?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();

 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><br /><br />";
	 echo "<a href="" class='error' Retirer .$R['pseudo']."' de votre liste d'amis</a>
  }//fin du foreach  
 }else{
  header("Location:index.php?page=membre"); 
 }
 echo "</div>";
?>


J'ai cherché mais pas trouvé :/
Merci d'avance :)

12 réponses

Résumé de la discussion

Un problème de parse error en PHP survient sur profile.php avec une erreur de syntaxe due à des guillemets et à l'échappement incorrect des chaînes lors de l'affichage HTML. Plusieurs discussions montrent que la cause provient des chaînes echo imbriquées entre guillemets doubles et simples non correctement concaténées, provoquant une erreur T_ENCAPSED_AND_WHITESPACE dans le code. En pratique, les corrections consistent à réécrire les échos avec une syntaxe fiable, par exemple en fermant correctement les guillemets et en utilisant une concaténation explicite autour des liens. D'autres échanges suggèrent aussi de vérifier les chaînes multi-valeurs et d'éviter les erreurs de variable dans les noms d'indices, afin d'éviter des retours incohérents ultérieurs.

Bobot (l’IA à votre service)
  1. Modérateur
    Tu peux tester la requête
    SELECT active FROM amis 
             FROM amis
              WHERE (pseudo_exp = 'jean' AND pseudo_dest = 'xzak47')
                OR  (pseudo_exp =  'xzak47' AND pseudo_dest = 'jean')
    

    1. #1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'FROM amis
      WHERE (pseudo_exp = 'jean' AND pseudo_dest = 'xzak47')
      ' at line 2
    2. j'ai corrigé sur le code
      SELECT active 
               FROM amis
                WHERE (pseudo_exp = 'jean' AND pseudo_dest = 'xzak47')
                  OR  (pseudo_exp =  'xzak47' AND pseudo_dest = 'jean') 
      
    3. visiblement ça marche, j'ai :
      arr_infos =
      Array
      (
      [0] => Array
      (
      [id] => 19
      [0] => 19
      [pseudo] => jean
      [1] => jean
      [password] => df70f9b975b42116ee6c0231a7e6ead0bbb283aa
      [2] => df70f9b975b42116ee6c0231a7e6ead0bbb283aa
      [email] => jean@hotmail.fr
      [3] => jean@hotmail.fr
      [sexe] => Homme
      [4] => Homme
      [apropos] => salut salut
      [5] => salut salut
      [avatar] => defaut.jpg
      [6] => defaut.jpg
      )

      )

      accepter_demande : 1
      demande_existe : 1
      verifier_expediteur : 0
  2. Modérateur
    ok
    Dans cette page, modifie le code de la fonction accepter_demande
    
    //la function qui va verifier si le destinataire a accepté la demande
    function accepter_demande(){
      global $bdd;
      $active = 0;
      //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_exp = :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) ;
      try{
        $query = $bdd->prepare($sql);
        $query ->execute($params);  
        $result = $query->fetchall();
       //On récupère le contenu de la colonne 'active'
        $active = count($result)>0 ? $result[0]['active'] : 0;
     }catch(Exception $e) {
       echo "<br>ERREUR ! ".$e->getMessage()."<br>";
       echo "<br>params : <br>";
       print_r($params);
     }
     
     return $active 
    }
    
    
    1. J'ai : Parse error: syntax error, unexpected '}' in C:\wamp\www\rs\functions\profile.func.php on line 77
      <?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;
        $active = 0;
        //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_exp = :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) ;
        try{
          $query = $bdd->prepare($sql);
          $query ->execute($params);  
          $result = $query->fetchall();
         //On récupère le contenu de la colonne 'active'
          $active = count($result)>0 ? $result[0]['active'] : 0;
       }catch(Exception $e) {
         echo "<br>ERREUR ! ".$e->getMessage()."<br>";
         echo "<br>params : <br>";
         print_r($params);
       }
       
       return $active 
      }
      
      //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 id_invitation 
               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(':session_pseudo' => $pseudo_exp , ':get_pseudo' => $pseudo_dest) ;
        
        $query = $bdd->prepare($sql);
        $query ->execute($params);  
        $requete= $query->fetchall();
      
        $result= (count($requete)>0)?1:0;
      
      }else{
        echo "<br><b>ERREUR ! <br>Une erreur est survenue lors de la récupération des variables !<br>";
        echo "<br>pseudo_exp  : ".$pseudo_exp ;
        echo "<br>pseudo_dest : ".$pseudo_dest ;
      } // FIN DU IF !!
      
      
      // return
        return $result; 
      }//fin de la fonction
    2. Modérateur
      Il manque un ;
      return $active ;
      }
      
    3. j'ai : Fatal error: Call to undefined function checkActive() in C:\wamp\www\rs\pages\profile.php on line 24
    4. Modérateur
      @Zakarya93ah oui pardon.. tu peux retirer le debug sur cette fonction.
      supprime les lignes :
       $etatDemande = checkActive($_SESSION['pseudo'],$pseudo );
       echo "<br> etatDemande : ".$etatDemande;
      
    5. je vous en prie :)
      j'ai :
      arr_infos =
      Array
      (
      [0] => Array
      (
      [id] => 19
      [0] => 19
      [pseudo] => jean
      [1] => jean
      [password] => df70f9b975b42116ee6c0231a7e6ead0bbb283aa
      [2] => df70f9b975b42116ee6c0231a7e6ead0bbb283aa
      [email] => jean@hotmail.fr
      [3] => jean@hotmail.fr
      [sexe] => Homme
      [4] => Homme
      [apropos] => salut salut
      [5] => salut salut
      [avatar] => defaut.jpg
      [6] => defaut.jpg
      )

      )

      accepter_demande : 0
      demande_existe : 1
      verifier_expediteur : 0
      Demande en cours
      Verifiez vos invitations

      :'(
  3. <?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 ? 0 : 1 ;
    }
    
    
    //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 id_invitation 
             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(':session_pseudo' => $pseudo_exp , ':get_pseudo' => $pseudo_dest) ;
      
      $query = $bdd->prepare($sql);
      $query ->execute($params);  
      $requete= $query->fetchall();
    
      $result= (count($requete)>0)?1:0;
    
    }else{
      echo "<br><b>ERREUR ! <br>Une erreur est survenue lors de la récupération des variables !<br>";
      echo "<br>pseudo_exp  : ".$pseudo_exp ;
      echo "<br>pseudo_dest : ".$pseudo_dest ;
    } // FIN DU IF !!
    
    
    // return
      return $result; 
    }//fin de la fonction
    1. Je l'ai mis comme ceci mais rien ne s'affiche :
      <?php 
      //la function qui va accepter l'invitation
      function accepter_invitation() {
      global $bdd;
      
        //récupération des variables PROPREMENT !
        $pseudo_session = isset($_SESSION['pseudo'])?$_SESSION['pseudo']:NULL;
        $pseudo_get = isset($_GET['pseudo'])?$_GET['pseudo']:NULL;
      
       $return = 0;
       if($pseudo_session && $pseudo_get){
        $sql = "UPDATE amis
               SET active=1
                  ,date_confirmation=NOW()
               WHERE pseudo_exp = :get_pseudo
            AND pseudo_dest = :session_pseudo ";
      
        // je place les  params dans une variable avant de l'utiliser :
        $params = array(':session_pseudo' =>$pseudo_session , ':get_pseudo' => $pseudo_get );
       
          try{
           $query = $bdd->prepare($sql);
           $query ->execute($params);  
           $etatDemande = checkActive($pseudo_session,$pseudo_get );
          // echo " <br> La demande est maintenant = ".$etatDemande;
           $return = $etatDemande;
        }catch(Exception $e) {
           echo "<br>ERREUR ! ".$e->getMessage()."<br>";
         echo "<br>params : <br>";
         print_r($params);
        }
       }
       return $return;
      }
      
      /**
      * Verifie l'état d'une demande
      */
      function checkActive($pseudo_dest,$pseudo_exp ) {
      global $bdd;
      $return = -1;
      
      $sql = "SELECT active
               FROM amis
              WHERE pseudo_exp = :pseudo_exp
              AND pseudo_dest = :pseudo_dest ";
      
            // je place les  params dans une variable avant de l'utiliser :
        $params = array(':pseudo_dest' =>$pseudo_dest , ':pseudo_exp' => $pseudo_exp );
        
        // LE TEMPS DES TESTS //
        echo "<pre> arr_infos =<br>";
        print_r($arr_infos); // pour un ARRAY on utilise PRINT_R
        echo "</pre>";
      
       echo "<br> accepter_demande : ".$accepter_demande;
       echo "<br> demande_existe : ".$demande_existe;
       echo "<br> verifier_expediteur : ".$verifier_expediteur;
      
        $etatDemande = checkActive($_SESSION['pseudo'],$pseudo );
       echo "<br> etatDemande : ".$etatDemande;
       
        try{
           $query = $bdd->prepare($sql);
           $query ->execute($params);  
         $result = $query->fetchall();
         $return = count($result)>0 ? $result[0]['active']:-1;
        }catch(Exception $e) {
           echo "<br>ERREUR ! ".$e->getMessage()."<br>";
           echo "<br>params : <br>";
           print_r($params);
        }
       
       return $return;
      }
      1. Modérateur
        ........ ....... ......... non ! ce n'est pas là qu'il faut le mettre !
        Où as tu mis du debug au debut de cette conversation ??? ... c'est là qu'il faut le remplacer pour mettre celui que je t'ai donné !
      2. @jordane45Ah...
        j'ai :
        arr_infos =
        Array
        (
        [0] => Array
        (
        [id] => 19
        [0] => 19
        [pseudo] => jean
        [1] => jean
        [password] => df70f9b975b42116ee6c0231a7e6ead0bbb283aa
        [2] => df70f9b975b42116ee6c0231a7e6ead0bbb283aa
        [email] => jean@hotmail.fr
        [3] => jean@hotmail.fr
        [sexe] => Homme
        [4] => Homme
        [apropos] => salut salut
        [5] => salut salut
        [avatar] => defaut.jpg
        [6] => defaut.jpg
        )

        )

        accepter_demande : 0
        demande_existe : 1
        verifier_expediteur : 0

        et : Fatal error: Call to undefined function checkActive() in C:\wamp\www\rs\pages\profile.php on line 24
      3. Modérateur
        Tu as quoi dans ta page profile.func.php ???
    2. Modérateur
      Tu peux essayer ce code et nous dire ce qu'il t'affiche ?
      // LE TEMPS DES TESTS //
        echo "<pre> arr_infos =<br>";
        print_r($arr_infos); // pour un ARRAY on utilise PRINT_R
        echo "</pre>";
      
       echo "<br> accepter_demande : ".$accepter_demande;
       echo "<br> demande_existe : ".$demande_existe;
       echo "<br> verifier_expediteur : ".$verifier_expediteur;
      
        $etatDemande = checkActive($_SESSION['pseudo'],$pseudo );
       echo "<br> etatDemande : ".$etatDemande;
      

      1. <?php 
        //la function qui va accepter l'invitation
        function accepter_invitation() {
        global $bdd;
        
          //récupération des variables PROPREMENT !
          $pseudo_session = isset($_SESSION['pseudo'])?$_SESSION['pseudo']:NULL;
          $pseudo_get = isset($_GET['pseudo'])?$_GET['pseudo']:NULL;
        
         $return = 0;
         if($pseudo_session && $pseudo_get){
          $sql = "UPDATE amis
                 SET active=1
                    ,date_confirmation=NOW()
                 WHERE pseudo_exp = :get_pseudo
              AND pseudo_dest = :session_pseudo ";
        
          // je place les  params dans une variable avant de l'utiliser :
          $params = array(':session_pseudo' =>$pseudo_session , ':get_pseudo' => $pseudo_get );
         
            try{
             $query = $bdd->prepare($sql);
             $query ->execute($params);  
             $etatDemande = checkActive($pseudo_session,$pseudo_get );
            // echo " <br> La demande est maintenant = ".$etatDemande;
             $return = $etatDemande;
          }catch(Exception $e) {
             echo "<br>ERREUR ! ".$e->getMessage()."<br>";
           echo "<br>params : <br>";
           print_r($params);
          }
         }
         return $return;
        }
        
        /**
        * Verifie l'état d'une demande
        */
        function checkActive($pseudo_dest,$pseudo_exp ) {
        global $bdd;
        $return = -1;
        
        $sql = "SELECT active
                 FROM amis
                WHERE pseudo_exp = :pseudo_exp
                AND pseudo_dest = :pseudo_dest ";
        
              // je place les  params dans une variable avant de l'utiliser :
          $params = array(':pseudo_dest' =>$pseudo_dest , ':pseudo_exp' => $pseudo_exp );
         
          try{
             $query = $bdd->prepare($sql);
             $query ->execute($params);  
           $result = $query->fetchall();
           $return = count($result)>0 ? $result[0]['active']:-1;
          }catch(Exception $e) {
             echo "<br>ERREUR ! ".$e->getMessage()."<br>";
             echo "<br>params : <br>";
             print_r($params);
          }
         
         return $return;
        }
        1. Le problème viens d'ici !! :
          <?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();
          
            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 {
             echo "<div class='error'>Vous n'avez pas d'invitations</div>";
           }//fin du if(count
          1. Modérateur
            Qu'est-ce qui te fais dire ça ?
            Moi je ne pense pas que ça soit ici le problème ..... la preuve .. rien dans ce code ne contient ce que tu obtiens comme résultat

            Demande en cours
            Verifiez vos invitations


            ... contrairement au code que tu nous a montré en premier....

            Et donc.. pourrais tu faire ce que je t'ai demandé et faire des ECHO de tes variable et nous en donner le résultat ??
          2. @jordane45J'ai fais :
            $pseudo = isset($_GET['pseudo'])?$_GET['pseudo']:NULL;
            echo $arr_infos = recuperer_info_membre_choisi($pseudo);
            echo $accepter_demande = accepter_demande();
            echo $demande_existe = demande_existe();
            echo $verifier_expediteur = verifier_expediteur();


            et j'ai : Notice: Array to string conversion in C:\wamp\www\rs\pages\profile.php on line 10
            et j'ai un Array010 qui s'affiche
          3. Modérateur
            @Zakarya93Heuuu.... ce n'est pas comme ça qu'on fait ...!!!!!
             // LE TEMPS DES TESTS //
              echo "<pre> arr_infos =<br>";
              print_r($arr_infos); // pour un ARRAY on utilise PRINT_R
              echo "</pre>";
            
             echo "<br> accepter_demande : ".$accepter_demande;
             echo "<br> demande_existe : ".$demande_existe;
             echo "<br> verifier_expediteur : ".$verifier_expediteur;
            
          4. @jordane45ah oui...
            sinon :
            arr_infos =
            Array
            (
            [0] => Array
            (
            [id] => 19
            [0] => 19
            [pseudo] => jean
            [1] => jean
            [password] => df70f9b975b42116ee6c0231a7e6ead0bbb283aa
            [2] => df70f9b975b42116ee6c0231a7e6ead0bbb283aa
            [email] => jean@hotmail.fr
            [3] => jean@hotmail.fr
            [sexe] => Homme
            [4] => Homme
            [apropos] => salut salut
            [5] => salut salut
            [avatar] => defaut.jpg
            [6] => defaut.jpg
            )

            )

            accepter_demande : 0
            demande_existe : 1
            verifier_expediteur : 0
          5. Modérateur
            @Zakarya93accepter_demande : 0 .... alors que tu me dis avoir accepté la demande ....
            Dans quel état est ACTIVE dans ta BDD ?
        2. Je devrais être redirigé sur la page invitations avec "Vous êtes désormais ami(e) avec jean " qui s'affiche (il s'affiche bien) pourquoi le "demande en cours..." s'affiche ??
          1. Modérateur
            Tu devrais remettre les echo sur tes variables
            $arr_infos = recuperer_info_membre_choisi($pseudo);
            $accepter_demande = accepter_demande();
            $demande_existe = demande_existe();
            $verifier_expediteur = verifier_expediteur();
            


            Afin de voir ce qu'elles valent et histoire qu'on essaye de comprendre ce qui ne va pas.
        3. voilà la function, je pense que c'est dessus qu'il faut faire les modifs

          <?php 
          //la function qui va accepter l'invitation
          function accepter_invitation() {
          global $bdd;
          
            //récupération des variables PROPREMENT !
            $pseudo_session = isset($_SESSION['pseudo'])?$_SESSION['pseudo']:NULL;
            $pseudo_get = isset($_GET['pseudo'])?$_GET['pseudo']:NULL;
          
           $return = 0;
           if($pseudo_session && $pseudo_get){
            $sql = "UPDATE amis
                   SET active=1
                      ,date_confirmation=NOW()
                   WHERE pseudo_exp = :get_pseudo
                AND pseudo_dest = :session_pseudo ";
          
            // je place les  params dans une variable avant de l'utiliser :
            $params = array(':session_pseudo' =>$pseudo_session , ':get_pseudo' => $pseudo_get );
           
              try{
               $query = $bdd->prepare($sql);
               $query ->execute($params);  
               $etatDemande = checkActive($pseudo_session,$pseudo_get );
              // echo " <br> La demande est maintenant = ".$etatDemande;
               $return = $etatDemande;
            }catch(Exception $e) {
               echo "<br>ERREUR ! ".$e->getMessage()."<br>";
             echo "<br>params : <br>";
             print_r($params);
            }
           }
           return $return;
          }
          
          /**
          * Verifie l'état d'une demande
          */
          function checkActive($pseudo_dest,$pseudo_exp ) {
          global $bdd;
          $return = -1;
          
          $sql = "SELECT active
                   FROM amis
                  WHERE pseudo_exp = :pseudo_exp
                  AND pseudo_dest = :pseudo_dest ";
          
                // je place les  params dans une variable avant de l'utiliser :
            $params = array(':pseudo_dest' =>$pseudo_dest , ':pseudo_exp' => $pseudo_exp );
           
            try{
               $query = $bdd->prepare($sql);
               $query ->execute($params);  
             $result = $query->fetchall();
             $return = count($result)>0 ? $result[0]['active']:-1;
            }catch(Exception $e) {
               echo "<br>ERREUR ! ".$e->getMessage()."<br>";
               echo "<br>params : <br>";
               print_r($params);
            }
           
           return $return;
          }
          1. Thanks :) encore un dernier soucis, pourquoi quand j'accepte la demande de l'utilisateur jean, je suis bien redirigé sur son profil mais j'ai ça qui s'affiche :

            Demande en cours
            Verifiez vos invitations

            voici le profile.php :
            <?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();
            
             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><br /><br />";
            
            if( $accepter_demande == 1 && $verifier_expediteur == 1){
              echo "<a href='index.php?page=supprimer_amis&pseudo=". $R['pseudo']."' class='error'> Retirer ".$R['pseudo']." de votre liste d'amis</a>";
            }
            	 
              }//fin du foreach  
             }else{
              header("Location:index.php?page=membre"); 
             }
             echo "</div>";
            ?>
            1. Modérateur
              Ben sûrment qu'il y a un souci avec les valeurs du IF
              if($accepter_demande == 0 && $verifier_expediteur == 0){
                      echo "<div class='success'>Demande en cours<br />
                    Verifiez vos invitations
                    </div>";     
                   }
              


              ... Quand tu es logué avec xzak47 ... quelles devraient être les (bonnes) valeurs de tes variables
              $accepter_demande == ??
              $verifier_expediteur = ??
              


              Peux tu me rapeller ce que tu as comme code pour la fonction accepter_demande(); ?

              PS: Merci d'utiliser le bouton "REPONDRE" .. plutôt que de mettre tes réponses en "commentaires" !
          2. Une autre question : je voudrais que ce lien apparaisse lorsque la personne est amie avec l'autre, or le lien s'affiche meme quand je ne suis pas ami avec la personne

            + 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 35

            echo "<a href='index.php?page=supprimer_amis&pseudo='. $R['pseudo_exp'].' class='error'> Retirer ".$R['pseudo']." de votre liste d'amis</a>";
            1. Modérateur
              Pour cela .. il faut faire comme les autres .... le mettre dans un IF !

              par exemple un truc du genre :
              if( $accepter_demande == 1 && $verifier_expediteur == 1){
                echo "<a href='' class='error'> Retirer ".$R['pseudo']." de votre liste d'amis</a>";
              }
              
            2. @jordane45ah oui merci ! avant, 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 35

              echo "<a href='index.php?page=supprimer_amis&pseudo='. $R['pseudo_exp'].' class='error'> Retirer ".$R['pseudo']." de votre liste d'amis</a>";
              
            3. Modérateur
              @Zakarya93
              echo "<a href='index.php?page=supprimer_amis&pseudo=". $R['pseudo_exp']."' class='error'> Retirer ".$R['pseudo']." de votre liste d'amis</a>";
              
          3. Modérateur
            Comme le message d'erreur l'indique ... le souci est la ligne 35
             echo "<a href="" class='error' Retirer .$R['pseudo']."' de votre liste d'amis</a>
            


            A changer par
             echo "<a href="" class='error'> Retirer ".$R['pseudo']." de votre liste d'amis</a";
            

            1. J'ai mtn : Parse error: syntax error, unexpected '" class='error'> Retirer "' (T_CONSTANT_ENCAPSED_STRING), expecting ',' or ';' in C:\wamp\www\rs\pages\profile.php on line 35

              avec cette ligne
            2. Modérateur
              @Zakarya93Pb d'apostrophes dans les apostrophes ...
              echo "<a href='' class='error'> Retirer ".$R['pseudo']." de votre liste d'amis</a>";
              
            3. Merci encore ;)