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. 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. 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 ;)
  3. 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>";
      
  4. 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. 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.
    2. 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 ?
    3. <?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. 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. 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. <?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. 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

              :'(
          2. 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