[RESOLU] Affichage du profil sans perdre les données du membre

Eléphant du PHP | 386 Messages

22 juin 2012, 05:54

Bonjour,

Dans mon espace membre, on peut visiter le profil d'un autre. Il y a une sidebar qui contient aussi les infos (nom et prénom) du membre connecté.
Mais, quand le membre visite le profil d'un autre, dans la sidebar, le nom et le prénom sont ceux de l'autre et pas ceux du membre connecté.
C'est un peu dur à expliquer ^^ je vous ai mis des commentaires sur les codes php pour mieux comprendre
Je vais poster 2 codes php, l'un de la sidebar bloc-left.php avec l'avatar, le nom et le prénom, et la page profil.php :

bloc-left.php :
				<?php if(isset($_COOKIE["pseudo"])) { ?>

				<div class="bloc_02">
					<h1 class="separate">Mon compte</h1>
					<table class="user">
						<tr>
							<td>
								<?php 
								if (file_exists($filename)) { echo '<img class="avatar" src="../images/upload/'.$id.'.png?'.$time.'" alt="" />';} 
								else { echo '<img class="avatar" src="'.$adresse_image.'" alt="" />';} 
								?>
								
							</td>
							<td>
								<a class="link-user" href="profil.php?id=<?php echo $id; ?>#!<?php echo $prenom; ?>.<?php echo $nom; ?>">
								<?php echo $prenom; ?> <?php echo $nom; ?> /* Ces variables ne s'affiche pas correctement lors d'une visite d'un profil d'un autre membre, elle affiche le membre que l'on visite au lieu d'afficher le membre connecté */
								</a>
							</td>
						</tr>
					</table>
					<ul class="nav" style="margin-top: 8px;">
						<li><a href="index.php"><img src="../images/refresh.png" alt="" />Actualiser mes infos</a></li>
						<li><a href="index.php"><img src="../images/settings.png" alt="" />Paramètres du compte</a></li>
						<li><a href="index.php"><img src="../images/pictures.png" alt="" />Mes photos</a></li>
						<li><a href="index.php"><img src="../images/articles.png" alt="" />Mes articles</a></li>
					</ul>
				</div>
				<div class="bloc_02">
					<h1 class="separate">Navigation</h1>
					<ul class="nav">
						<li><a href="index.php"><img src="../images/home.png" alt="" />Accueil du site</a></li>
						<li><a href="index.php"><img src="../images/community.png" alt="" />La communauté</a></li>
						<li><a href="index.php"><img src="../images/about.png" alt="" />A propos</a></li>
						<li><a href="index.php"><img src="../images/contact.png" alt="" />Contactez-nous</a></li>
					</ul>
				</div>
				<div class="bloc_02">
					<h1 class="separate">Annonces</h1>
					<p style="font-size: 11px; margin-bottom: 10px;">Aucune annonce pour l'instant</p>
					<ul class="nav">
						<li><a href="index.php"><img src="../images/annonces-add.png" alt="" />Déposer une annonce</a></li>
					</ul>
				</div>
				<div class="bloc_02">
					<h1 class="separate">Quizz</h1>
					<p style="font-size: 11px; margin-bottom: 10px;">Choisissez un niveau :</p>
					<ul class="nav">
						<li><a href="index.php"><img src="../images/tick-green.png" alt="" />Niveau facile</a></li>
						<li><a href="index.php"><img src="../images/tick-yellow.png" alt="" />Niveau intermédiaire</a></li>						
						<li><a href="index.php"><img src="../images/tick-red.png" alt="" />Niveau confirmé</a></li>
					</ul>
				</div>
				<div class="bloc_02">
					<h1 class="separate">Suivez-nous</h1>
					<table style="margin: 0 auto">
						<tr>
							<td><a href="index.php" class="socialfb"></a></td>
							<td><a href="index.php" class="socialgo"></a></td>
						</tr>
					</table>
				</div>
				
				<?php } else { ?>
				
				<div class="bloc_02">
					<h1 class="separate">Navigation</h1>
					<ul class="nav">
						<li><a href="index.php"><img src="../images/home.png" alt="" />Accueil du site</a></li>
						<li><a href="#" class="loginbox"><img src="../images/account.png" alt="" />Mon compte</a></li>
						<li><a href="index.php"><img src="../images/community.png" alt="" />La communauté</a></li>
						<li><a href="index.php"><img src="../images/about.png" alt="" />A propos</a></li>
						<li><a href="contact.php"><img src="../images/contact.png" alt="" />Contactez-nous</a></li>
					</ul>
				</div>
				<div class="bloc_02">
					<h1 class="separate">Annonces</h1>
					<p style="font-size: 11px;">Aucune annonce pour l'instant</p>
				</div>
				<div class="bloc_02">
					<h1 class="separate">Quizz</h1>
					<p style="font-size: 11px; margin-bottom: 10px;">Choisissez un niveau :</p>
					<ul class="nav">
						<li><a href="index.php"><img src="../images/tick-green.png" alt="" />Niveau facile</a></li>
						<li><a href="index.php"><img src="../images/tick-yellow.png" alt="" />Niveau intermédiaire</a></li>						
						<li><a href="index.php"><img src="../images/tick-red.png" alt="" />Niveau confirmé</a></li>
					</ul>
				</div>
				<div class="bloc_02">
					<h1 class="separate">Suivez-nous</h1>
					<table style="margin: 0 auto">
						<tr>
							<td><a href="index.php" class="socialfb"></a></td>
							<td><a href="index.php" class="socialgo"></a></td>
						</tr>
					</table>
				</div>
				
				<?php } ?>
profil.php :
<?php
session_start();
require('include/connect.php');

$sql = connect_sql();
$pseudo_membre = $_SESSION['pseudo'];
$requete =  mysql_query("SELECT * FROM wa_communaute WHERE `pseudo`='$pseudo_membre'");
$result = mysql_fetch_array ($requete);

$id = $result['id'];
$pseudo = $result['pseudo'];
$nom = $result['nom'];
$prenom = $result['prenom'];
$mail = $result['mail'];
$sexe = $result['sexe'];

$adresse_image = $sexe ==1 ? 'images/upload/homme.png' : 'images/upload/femme.png';
$filename = 'images/upload/'.$id.'.png';
?>
<!DOCTYPE html>
<html lang="fr">
<head>
	<meta charset="utf-8">
	<?php
		if(isset($_GET['id']))
		{
		$sql = connect_sql();
		$id = intval($_GET['id']);
		$pseudo_membre = $_SESSION['pseudo'];
		$requete =  mysql_query('SELECT * FROM wa_communaute WHERE id="'.$id.'"');
		if(mysql_num_rows($requete)>0) {
			$result = mysql_fetch_array ($requete);
				$nom = $result['nom'];
				$prenom = $result['prenom'];
	?>
	<title><?php echo htmlentities($prenom); ?> <?php echo htmlentities($nom);	?></title>
	<?php } mysql_close(); } ?>
	<meta name="description" content="Web Astronomie vous permet de publier vos photos, vos actualités, vos articles avec vos amis et les internautes du site. Inscrivez-vous dès maintenant !" />
	<meta name="keywords" content="Web Astronomie, Web Astronomy, Astronomie, Astronomy, Web, Partagez, Share, Photos, Articles, Vidéos, Actualités, Inscription, Connexion, Système solaire, Soleil, Mercure, Venus, Terre, Mars, Jupiter, Saturne, Uranus, Neptune, Pluton, Astéroïdes, Comètes" />
	<?php include('include/head.php'); ?>
	
</head>
<body>

	<?php include('include/header.php'); ?>
	
	<div id="content">
		<div class="container">
			<div id="bloc-left">
				<?php include('include/bloc-left.php'); ?>
			</div>
			<div id="bloc-center">
			<?php
				if(isset($_GET['id']))
				{
				$sql = connect_sql();
				$id = intval($_GET['id']);
				$pseudo_membre = $_SESSION['pseudo'];
				$requete =  mysql_query('SELECT * FROM wa_communaute WHERE id="'.$id.'"');
				if(mysql_num_rows($requete)>0)
						{
							$result = mysql_fetch_array ($requete);
				
				$id = $result['id'];
				$pseudo = $result['pseudo'];
				$nom = $result['nom'];
				$prenom = $result['prenom'];
				$mail = $result['mail'];
				$sexe = $result['sexe'];

				$adresse_image = $sexe ==1 ? 'images/upload/homme.png' : 'images/upload/femme.png';
				$filename = 'images/upload/'.$id.'.png';
			?>
			
			<!-- Profil du membre -->
			
			<?php } else { ?>
				<div class="bloc_03">
					<h1 class="separate"><span class="lettrine">E</span>rreur de navigation</h1>
					<p>Ce membre n'existe pas !</p>
				</div>
			<?php } } else { ?>
				<div class="bloc_03">
					<h1 class="separate"><span class="lettrine">E</span>rreur de navigation</h1>
					<p>L'identifiant du membre n'est pas défini !</p>
				</div>
			<?php } mysql_close(); ?>
			</div>
			<div id="bloc-right">
				<?php include('include/bloc-right.php'); ?>
			</div>
		</div>
	</div>
	
	<?php include('include/footer.php'); ?>

</body>
</html>
Voilà, en espérant que quelqu'un ai trouvé l'erreur :(
Merci beaucoup par avance pour votre aide :)

ViPHP
xTG
ViPHP | 7331 Messages

22 juin 2012, 07:53

Bah n'utilises pas les mêmes noms de variable et tu n'auras pas de souci. ;)

Eléphant du PHP | 386 Messages

22 juin 2012, 21:01

C'est a dire ?
Tu aurais bien un exemple a me montrer ? ^^
(avec mon code php du dessus)

Merci :)

ViPHP
xTG
ViPHP | 7331 Messages

22 juin 2012, 21:28

Ce sera 10€ de l'heure.
Non sérieusement... Je pense que je suis tout à fait compréhensible. O_o
Tu as deux scripts, deux fois les mêmes variables, je t'indique qu'il faut les renommer dans un script pour pas avoir de conflit...

Eléphant du PHP | 386 Messages

22 juin 2012, 21:48

Ou alors, dans quel script il faut que je renomme les variables ? ^^

Eléphant du PHP | 386 Messages

22 juin 2012, 21:58

J'ai trouvé :D
Enfaite dans l'espace membre il y a une variable qui détermine quel est le membre connecté :

C'est la variable $pseudo_membre
Donc j'ai fais une requête du prénom et du nom avec cette variable et ça m'affiche le nom et le prénom du membre connecté même si je visite le profil d'un autre membre.

Faut-il fermer avec mysql_close(); à chaque fois qu'on à besoin de faire une requête ?
$sql = connect_sql();
$pseudo_membre = $_SESSION['pseudo'];
$requete =  mysql_query("SELECT * FROM wa_communaute WHERE `pseudo`='$pseudo_membre'");
$result = mysql_fetch_array ($requete);
				
$nom = $result['nom'];
$prenom = $result['prenom'];
Merci d'avance

Eléphant du PHP | 75 Messages

22 juin 2012, 22:01

Sa libère la mémoire plus vite mais bon, mysql ferme normalement la connexion automatiquement après la requète.

Eléphant du PHP | 386 Messages

22 juin 2012, 22:12

Okey, merci :)
Sinon, tu saurais pas comment faire un formulaire de news en ajax, parce que j'ai déjà un script de news et je voulais le transformer en ajax, pour éviter de recharger la page ?

ViPHP
AB
ViPHP | 5818 Messages

23 juin 2012, 04:10

Un formulaire de news n'est pas différent sur le principe d'un formulaire standard. Si tu veux le faire en javascript et sans librairie le principe d'ajax est ici (regarde uniquement le premier message car je ne suis pas certain de la pérennité du code du second message).
Sinon pour plus de facilité pour le codage javascript tu peux utiliser une lib comme jquery