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

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

Généré automatiquement par IA
sur la base des meilleures réponses
  1. Zakarya93 Messages postés 1026 Statut Membre 10
     
    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
    1. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 831
       
      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" !
      0
  2. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 831
     
    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";
    

    0
    1. Zakarya93 Messages postés 1026 Statut Membre 10
       
      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
      0
      1. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 831 > Zakarya93 Messages postés 1026 Statut Membre
         
        Pb d'apostrophes dans les apostrophes ...
        echo "<a href='' class='error'> Retirer ".$R['pseudo']." de votre liste d'amis</a>";
        
        0
    2. Zakarya93 Messages postés 1026 Statut Membre 10
       
      Merci encore ;)
      0
  3. Zakarya93 Messages postés 1026 Statut Membre 10
     
    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>";
    0
    1. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 831
       
      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>";
      }
      
      0
      1. Zakarya93 Messages postés 1026 Statut Membre 10 > jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention  
         
        ah 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>";
        
        0
      2. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 831 > Zakarya93 Messages postés 1026 Statut Membre
         
        echo "<a href='index.php?page=supprimer_amis&pseudo=". $R['pseudo_exp']."' class='error'> Retirer ".$R['pseudo']." de votre liste d'amis</a>";
        
        0
  4. Zakarya93 Messages postés 1026 Statut Membre 10
     
    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;
    }
    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
     
    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 ??
    0
    1. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 831
       
      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.
      0
  7. Zakarya93 Messages postés 1026 Statut Membre 10
     
    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
    0
    1. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 831
       
      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 ??
      0
    2. Zakarya93 Messages postés 1026 Statut Membre 10 > jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention  
       
      J'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
      0
    3. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 831 > Zakarya93 Messages postés 1026 Statut Membre
       
      Heuuu.... 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;
      
      0
    4. Zakarya93 Messages postés 1026 Statut Membre 10 > jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention  
       
      ah 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
      0
    5. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 831 > Zakarya93 Messages postés 1026 Statut Membre
       
      accepter_demande : 0 .... alors que tu me dis avoir accepté la demande ....
      Dans quel état est ACTIVE dans ta BDD ?
      0
  8. Zakarya93 Messages postés 1026 Statut Membre 10
     
    <?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;
    }
    0
  9. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 831
     
    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;
    

    0
  10. Zakarya93 Messages postés 1026 Statut Membre 10
     
    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;
    }
    0
    1. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 831
       
      ........ ....... ......... 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é !
      0
      1. Zakarya93 Messages postés 1026 Statut Membre 10 > jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention  
         
        Ah...
        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
        0
    2. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 831
       
      Tu as quoi dans ta page profile.func.php ???
      0
  11. Zakarya93 Messages postés 1026 Statut Membre 10
     
    <?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
    0
  12. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 831
     
    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 
    }
    
    
    0
    1. Zakarya93 Messages postés 1026 Statut Membre 10
       
      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
      0
    2. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 831
       
      Il manque un ;
      return $active ;
      }
      
      0
    3. Zakarya93 Messages postés 1026 Statut Membre 10
       
      j'ai : Fatal error: Call to undefined function checkActive() in C:\wamp\www\rs\pages\profile.php on line 24
      0
      1. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 831 > Zakarya93 Messages postés 1026 Statut Membre
         
        ah oui pardon.. tu peux retirer le debug sur cette fonction.
        supprime les lignes :
         $etatDemande = checkActive($_SESSION['pseudo'],$pseudo );
         echo "<br> etatDemande : ".$etatDemande;
        
        0
    4. Zakarya93 Messages postés 1026 Statut Membre 10
       
      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


      :'(
      0
  13. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 831
     
    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')
    

    0
    1. Zakarya93 Messages postés 1026 Statut Membre 10
       
      #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
      0
    2. Zakarya93 Messages postés 1026 Statut Membre 10
       
      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') 
      
      0
    3. Zakarya93 Messages postés 1026 Statut Membre 10
       
      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
      0