Problème affichage invitation membre

Résolu
Zakarya93 Messages postés 1026 Statut Membre -  
jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour,



J'ai un petit problème d'affichage, voici mon profile.php :

<?php
//-----------------------------
 //Profile.php 
//-----------------------------

include_once('body/header.php');
include_once('body/menu.php');
?>
<div class='info'>
<?php
if(!function_exists('recuperer_info_membre_choisi')){
 echo "ERREUR : La fonction recuperer_info_membre_choisi n'existe pas ! ";
}
$pseudo = isset($_GET['pseudo'])?$_GET['pseudo']:NULL;
$infos_membres_choisis = recuperer_info_membre_choisi($pseudo);

if($infos_membres_choisis == true && $_GET['pseudo'] != $_SESSION['pseudo'])

foreach($infos_membres_choisis as $info_membre_choisi) {
	if(demande_existe() == 0)
	{
		?>
		      <div class="error">Vous n'êtes pas ami(e) avec <? echo $info_membre_choisi['pseudo'];?><br /></div>
			  <a href="">Envoyer une invitation</a>
		<?php
	}
 echo"<img src='avatar/". $info_membre_choisi['avatar']."' height='200' width='200' alt='avatar'>";
     echo "<p><strong>Email : </strong><em>".$info_membre_choisi['email']."</em></p>";
     echo "<p><strong>Sexe : </strong><em>".$info_membre_choisi['sexe']."</em></p>";
     echo "<p><strong>A propos de vous : </strong><em>".$info_membre_choisi['apropos']."</em></p>";
}else{
	header("Location:index.php?page=membre");	
}
?>
</div>


Merci d'avance :)

4 réponses

Résumé de la discussion

Un problème d'affichage dans profile.php est évoqué, accompagné d'une erreur de syntaxe et d'un accès à une variable non définie. Des réponses pointent une erreur de syntaxe (else inattendu) due à un enchaînement de conditions sans braces et à une fermeture de bloc mal placée dans profile.php. Il est conseillé d'inspecter les indices du print_r et de vérifier la structure du foreach, car $info_membre_choisi n'est défini que dans la boucle et peut générer des notices. Certaines interventions mentionnent que l'indice 0 peut contenir le premier élément du tableau retourné et recommandent d'accéder directement à $infos_membres_choisis[0] pour éviter des variables non définies.

Bobot (l'IA à votre service)
  1. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 832
     
    ...... et c'est quoi le souci ?
    0
  2. Zakarya93 Messages postés 1026 Statut Membre 10
     


    ma page devrait être comme ça
    0
    1. hharchi9 Messages postés 693 Statut Membre 24
       
      Salut,

      Commence par mettre ton lien("envoyer une invitation") dans le div("class='error'")
      0
    2. Zakarya93 Messages postés 1026 Statut Membre 10 > hharchi9 Messages postés 693 Statut Membre
       
      ça marche pas, le pseudo de l'utilisateur ne s'affiche pas et le texte ne se mets pas au centre
      0
    3. hharchi9 Messages postés 693 Statut Membre 24
       
      Mais le lien, il se met bien au centre sous le texte ?
      0
    4. Zakarya93 Messages postés 1026 Statut Membre 10 > hharchi9 Messages postés 693 Statut Membre
       
      Oui
      0
    5. hharchi9 Messages postés 693 Statut Membre 24
       
      Met le script affichant l'avatar et les infos du membre dans un div auquel tu ajoute la règle css : "margin: auto;"
      0
  3. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 832
     
    Tu as plusieurs soucis.....
    le premier ... le fait d'utiliser des noms à rallonge pour tes variables... et le fait d'utiliser des variables portant quasiment les mêmes noms !!!

    Prend l'habitude de mettre des noms de variable plus courts...ça te facilitera la vie !

    Ensuite.. (encore une fois ! ) évites d'ouvrir/fermer des balises PHP un peu partout dans ton code ....
    Pourquoi utiliser des ECHO pour afficher des éléments dans ta boucle et faire une partie en "pure" html ???? Autant tout faire pareil non ??!

    Peux tu tester ceci ?
    <?php
    //-----------------------------
     //Profile.php 
    //-----------------------------
    
    include_once('body/header.php');
    include_once('body/menu.php');
    ?>
    <div class='info'>
    <?php
    if(!function_exists('recuperer_info_membre_choisi')){
     echo "ERREUR : La fonction recuperer_info_membre_choisi n'existe pas ! ";
    }
    $pseudo = isset($_GET['pseudo'])?$_GET['pseudo']:NULL;
    $arr_infos = recuperer_info_membre_choisi($pseudo);
    
    if(count($arr_infos)>0 && $pseudo != $_SESSION['pseudo']){
    
     foreach($arr_infos as $R) {
    	if(demande_existe() == 0){
         echo "<div class='error'>
    	          Vous n'êtes pas ami(e) avec ".$R['pseudo']."<br />
    	         <a href=''>Envoyer une invitation</a>
    			</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>";
     }
    }else{
    	header("Location:index.php?page=membre");	
    }
    ?>
    </div>
    


    PS: A l'avenir .. merci d'utiliser le bouton REPONDRE plutôt que de mettre tes réponses en COMMENTAIRES .. c'est plus facile pour suivre la discussion !
    0
    1. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 832
       
      Au passage... pourquoi ai-je parlé de la ligne de code
      $infos_membres_choisis [0]['pseudo']
      

      ... car hharchi9 .. t'a demandé de faire un ECHO (https://forums.commentcamarche.net/forum/affich-32099079-probleme-affichage-invitation-membre#23)
      ... hors... quand on regarde le résultat du print_r ...

      Array (
      [0] => Array (
      [id] => 18
      [0] => 18
      [pseudo] => xzak47
      [1] => xzak47
      [password] => df70f9b975b42116ee6c0231a7e6ead0bbb283aa
      [2] => df70f9b975b42116ee6c0231a7e6ead0bbb283aa
      [email] => xxx@gmail.com
      [3] => xxx@gmail.com
      [sexe] => Homme
      [4] => Homme
      [apropos] => En cours de développement
      [5] => En cours de développement
      [avatar] => CR7.jpg
      [6] => CR7.jpg
      )
      )

      (je l'ai remis un peu en forme pour que tu comprennes bien )
      On constate que (ton print_r($info_membre_choisi) ) et donc ta fonction... retourne un ARRAY contenant lui même un ARRAY
      ==>> Si tu ne sais pas ce qu'est un array (et je pense que tu l'ignores...) .. je t'invite FORTEMENT à regarder sur le net ... ET à comprendre leur manipulation !
      (par exemple ici : http://openclassrooms.com/courses/concevez-votre-site-web-avec-php-et-mysql/les-tableaux-43 )
      Cela fait parti des bases de la programmation !!!

      revenons à nos moutons..... ton tableau contient (dans son indice 0 ) un second tableau (array) .. qui contient quand à lui les infos de ton user....
      On y voit bien l'index "pseudo" entre autres choses.

      Et donc.. si tu tu ne parcourais pas ce tableau à l'aide d'un FOREACH ... si tu avais voulu DIRECTEMENT faire afficher la variable pseudo... tu aurais du faire :
      echo $infos_membres_choisis [0]['pseudo'];
      


      (Adresse mail supprimée par la modération)
      0
    2. Zakarya93 Messages postés 1026 Statut Membre 10
       
      Merci c'est noté& !:)
      0
  4. Zakarya93 Messages postés 1026 Statut Membre 10
     
    Sinon pour mettre le texte d'invitation au milieu, une idée jordane svp ? :)
    0
    1. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 832
       
      Oui.. mais ;
      - Je t'ai déjà demandé... de ne poser qu' UNE question par discussion....
      Là .. on a traité ton souci pour afficher les données
      Le positionnement ... étant ... une autre question !

      - Cette seconde question donc.....c'est du CSS ... le mieux est d'aller ouvrir une question à ce sujet dans le forum :https://forums.commentcamarche.net/forum/css-156


      PS: Penses à clore cette discussion .... avant d'aller en ouvrir une autre
      0