Aller au contenu

Des sessions qui se mélange !


Kent

Sujets conseillés

Bonjour à tous, voici donc mon probléme.

Le probléme se situe au niveau de la visualisation des profils de mes membres.

La visualisation se fait depuis un lien dans lequel l'id du membre est passé en parametre, ainsi sur la page profil je recupere cet id, et j'affiche donc les informations concernant ce membre depuis une base de donnée MySQL.

jusqu'à là aucun soucis, cependant depuis peu j'ai mis au point un system d'album photo, je voudrais donc afficher cet album sur le profil du visiteur.

pour l'instant la ligne permettant d'afficher l'album photo est commenté.

mais lorsque je la décommente, au premier chargement du profil tout fonctionne normalement, l'album y est afficher correctement. Apres raffraichissement de la même page (F5), je m'apércois que le pseudo loggué change et que ce n'est pas que le pseudo, en effet dans la partie gestion du compte du membre loggué on à accé dés lors aux informations relative au profil visualisé et non au membre identifié !

J'ai donc procédé à plusieurs débuggage. Ces manipulations m'on conduit à plusieurs conclusions :

- Le probléme ne viens pas de la partie identification.

- le nom de la variable pour passé l'id du membre est la même que la variable $_SESSION['id_membre'] qui est initialisé lorsque l'utilisateur se logue, j'ai donc changé les nom et les aies nommé distinctement, aucune amélioration du résultat.

- Ce probléme n'existe QUE sur la page profil.

Voici une presentation des fichiers concernants le fonctionnement de mes sessions :

Lorsque l'utilisateur se loggue

Nous avons le fichier logged.php


<?php
$pseudo = htmlentities($_POST['pseudo']);
$mdp = htmlentities($_POST['mdp']);
$mdp = md5($mdp);
include ("conexion_bdd.php");
$requete = mysql_query("SELECT * FROM membres WHERE pseudo='$pseudo'");
$donnee = mysql_fetch_array($requete);
if(isset($mdp) AND isset($pseudo) AND $mdp != $donnee['mdp'] OR $mdp == null OR $pseudo == null)
{
header("Location:../signin.php");
}
else
{
header("Location:../index.php");
session_destroy();
session_start();
$_SESSION['pseudo'] = $pseudo ;
$_SESSION['id_membre'] = $donnee['id_membre'];
$_SESSION['level'] = $donnee['level'];
$_SESSION['logged'] = true;

}
mysql_close();
?>

Ce fichier creer des variable $_SESSION qui me permettera de suivre l'utilisateur sur toute mes pages et de les adapté en fonction de ces variables

checklog.php :


<?php include("inc/checklog.php");?>
<html>
<head>
<title>VotreStyle.Com : Visualiser un profil.</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<meta name="Description" content="Un profil personalisé sur Votre Style avec vos albums photos !" />
<meta name="Keywords" content="look,style,communauté,tendance,fashion,vetements,mode,jeans,vestes,t-shirt,ensemble,panoplies,articles,article" />
<link rel="stylesheet" media="screen" type="text/css" title="designbasic" href="vsclear.css" />
</head>
<body>

<div id="corps">
<div id="rdmpic"><?php include("inc/rdmpic.php");?></div>
<div id="header"></div>
<div id="soushead"><?php include("inc/blockmembre.php");?></div>
<div id="navigation">
<div id="menu"><?php include("inc/menu.php");?></div>
<div id="partner"><?php include("inc/blockpartenaires.php");?></div>
</div>

<!-- finn de la partie navigation ------------------------------------------------------------------------->

<div id="contenu">

<div class="pub"><?php include("inc/addons/google/pub/pub.php");?></div>
<?php
$id = $_GET['id_membre'];
include("inc/conexion_bdd.php");
$req = mysql_query("SELECT * FROM membres WHERE id_membre='$id'");


$infos = mysql_fetch_array($req);
echo "<div class='galerie'>";
echo "<div id='profil'>";
echo "<hr/>";
echo "<table border='0' color='purple'>";
echo "<tr>";


switch ($infos['sexe']) {
case "Homme":
print "<td><div class='titred'><h3><font color='blue'>Profil de ".$infos['pseudo']."</font></h3></div></td></tr>";
break;
case "Femme":
print "<td><div class='titred'><h3><font color='#E809D0'>Profil de ".$infos['pseudo']."</font></h3></div></td></tr>";
break;
}

echo "<td width='20%'><div align='left'><a href='".$infos['photo_membre']."' rel='lightbox'><img src=".$infos['photo_membre']." height='70' border='0'/></a></div></td>";
echo "<tr><td><p>Departement : ".$infos['departement']."</td></tr>";
echo "<tr></tr>";
echo "<td><p>Date de naissance : ".$infos['jour2n']."/".$infos['mois2n']."/".$infos['annee2n']."</td>";
echo "<tr></tr>";
echo "<td><p>Sexe : ".$infos['sexe']."</td>";
echo "<tr></tr>";
echo "<td><p>Mon style : ".$infos['style']."</td></tr>";
echo "<tr></tr>";
echo "<td colspan='50'><p> Comment avez vous connu(e) le site ? : ".$infos['source']."</td></tr>";
echo "<tr></tr>";
echo "<td colspan='50'><p>Description : ".$infos['description']."</td></tr>";
echo "<tr></tr>";
echo "<td><p>J'aime : ".$infos['jaime'];
echo "<tr></tr>";
echo "</td><td><p>Je n'aime pas : ".$infos['jaimepas'];
echo "</td>";
echo "</tr>";
echo "</table>";
echo "</div>";
?>

<div class="tendance">
<p>Tendance à <?php calctrend($id);?></p>
</div>

<?php
mysql_close();
?>
<?php //include("inc/showprofilgalerie.php"); // Fameuse ligne posant probléme ?>
<p><hr/><li><a href="inc/voteup.php?id=<?php echo $id ;?>">Voter pour ce profil.</a></li>
<li><a href="inc/styleup.php?id=<?php echo $id;?>">Ce membre a du style.</a></li>
<li>Rencontrer ce membre. Bientôt...</li></p>
<div class="talkaboutuser">
<p>De quoi parle <b><?php echo $infos['pseudo'];?></b> : <?php include("inc/talkaboutuser.php");?></p>
</div>

</div>
</div><!-- fin de contenu-->





<div id="footer"><?php include("inc/footer.php");?></div>

</div> <!-- fin du corps-->
</body>
</html>

Cette page affiche donc le profil du membre dont l'id est passé en parametre... remarquer la ligne commenté qui pose probléme concernant le fichier showprofilgalerie.php fichier dont le code est décris ci-apres.

Le fichier showprofilgalerie.php :

<?php
// on verifie si l'utilisateur est logué
if(isset($_GET['id_membre']) && $_GET['id_membre'] != null)
{

// On recupere le pseudo correspondant à l'id
include("conexion_bdd.php");
$RecPse = mysql_query("SELECT * FROM membres WHERE id_membre='".$_GET['id']."'");
$RecSPse = mysql_fetch_array($RecPse);
$pseudo = $RecSPse['pseudo'];
mysql_close();
echo "<div class='galerie'>";
echo "<H3> Son album photo...</H3>";
echo "<hr/>";
// on déclare un tableau qui contiendra le nom des fichiers de nos miniatures
$tableau = array();
// on ouvre notre dossier contenant les miniatures
$dossier = opendir ('membres/'.$pseudo.'_mini');
while ($fichier = readdir ($dossier)) {
if ($fichier != '.' && $fichier != '..' && $fichier != 'index.php') {
// on stocke le nom des fichiers des miniatures dans un tableau
$tableau[] = $fichier;
}
}
closedir ($dossier);

// on défini le nombre de colonne sur lesquelles vont s'afficher nos miniatures
$nbcol=2;
// on compte le nombre de miniatures
$nbpics = count($tableau);

// si on a au moins une miniature, on les affiche toutes
if ($nbpics != 0) {
echo '<table>';
for ($i=0; $i<$nbpics; $i++){
if($i%$nbcol==0) echo '<tr>';
// pour chaque miniature, on affiche la miniature munie d'un lien vers la photo en taille réelle
echo '<td><a href="membres/'.$pseudo.'/' , $tableau[$i] , '"><img src="membres/'.$pseudo.'_mini/' , $tableau[$i] , '" alt="Image" /></a></td>';
if($i%$nbcol==($nbcol-1) or $i==($nbpics-1)) echo '</tr>';
}
echo '</table>';
}
// si on a aucune miniature, on affiche un petit message
else
echo 'Ce membre n\'a pas publier de photos';
echo "<hr/>";
echo "</div>";
} // fin if user logged
else
{ // l'utilisateur n'est pas loggué
echo "<div class='galerie'><h3>Erreur ! </h3><hr/>ID du membre non passé.</div>";
}
?>

Voilà j'espere que toute les informations dont vous avez besoin vous sont données, si vous avez des questions n'hésitez pas !

Merci d'avoir pris le temps de me lire

Cordialement Kent. :(

Modifié par Kent
Lien vers le commentaire
Partager sur d’autres sites

A la ligne 10 de showprofilgalerie.php :

$pseudo = $RecSPse['pseudo'];

Or, c'est une variable déja utilisée pour l'identification du membre.

J'ai pas vraiment tout regardé avec attention, mais essaye donc de changer cette variable aussi ( genre en $pseudo_album ) a tous les endroits ou elle est utilisée.

Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...