Des sessions qui se mélangent !

Discussion dans 'Développement d'un site Web ou d'une appli mobile' créé par Kent, 22 Octobre 2006.

  1. Kent
    Kent Nouveau WRInaute
    Inscrit:
    22 Octobre 2006
    Messages:
    23
    J'aime reçus:
    0
    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
    Code:
    <?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 :

    Code:
    <?php
    session_start(); // Demarrage de la session
    ?>
    Ce fichier est inclus sur toute les pages il me permet d'avoir accés en particulier à $_SESSION['logged'] = boolean , pour savoir si l'utilisateur s'est logué ou non.

    viewprofil.php :
    Code:
    <?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 :

    Code:
    <?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

    EDIT : Dernier details , tout marche parfaitement en local !
    Cordialement Kent.
     
  2. Lord_Coder
    Lord_Coder WRInaute discret
    Inscrit:
    15 Avril 2006
    Messages:
    118
    J'aime reçus:
    0
    J'avais aussi rencontré ce bug , c'était dû au nom des variables , enfin , $_SESSION['variable'] aura la même valeur que $variable .
     
  3. Kent
    Kent Nouveau WRInaute
    Inscrit:
    22 Octobre 2006
    Messages:
    23
    J'aime reçus:
    0
    Je pensé aussi que c'etait du au nom des variable, la variablet transmise pour le profil est id_membre et la variable de sessions $_SESSION['id_membre']; cependant j'avais changer les nom pour justement vérifié.... en vain malheureusement, mais pourquoi tout fonctionne correctement lors du premier chargement du profil, et lorsque j'actualise le bug ce produit, certaines donnée ne seré envoyé qu'au deuxiemme chargement? vraiment etrange..


    Au deuxiemme chargement la valeur de $_SESSION['id_membre'] serait ecrasé par celle du profil ?
     
  4. Lord_Coder
    Lord_Coder WRInaute discret
    Inscrit:
    15 Avril 2006
    Messages:
    118
    J'aime reçus:
    0
    Bon étant trop occupé , je ne peux pas analyser tout tes codes , mais j'ai trouvé un bout de code qui pourrait écraser le pseudo :
    Code:
    $pseudo = $RecSPse['pseudo'];
     
  5. Kent
    Kent Nouveau WRInaute
    Inscrit:
    22 Octobre 2006
    Messages:
    23
    J'aime reçus:
    0
    Merci de ton interet lord Coder , je vais regarder ce bout là tout de suite :)
     
  6. Kent
    Kent Nouveau WRInaute
    Inscrit:
    22 Octobre 2006
    Messages:
    23
    J'aime reçus:
    0
    Effectivement c'etait ça le probléme, MERCI INFINIEMENT !!!!! Je suis nouveau sur WRI , et pas déçu ! merci beaucoup à toi !
     
  7. Chark
    Chark Nouveau WRInaute
    Inscrit:
    19 Décembre 2005
    Messages:
    20
    J'aime reçus:
    0
    Arf, je viens de te répondre la même chose sur l'autre forum ( dont je taierais le nom lol ) ou tu avais posé la même question :D
     
  8. Kent
    Kent Nouveau WRInaute
    Inscrit:
    22 Octobre 2006
    Messages:
    23
    J'aime reçus:
    0
    Ah oui effectivement merci quand même j'ai tout de même répondu, la politesse est de rigueur.
     
Chargement...
Similar Threads - sessions mélangent Forum Date
sessions PHP sans cookies ? Développement d'un site Web ou d'une appli mobile 26 Décembre 2021
Memcached/PHP gestion de sessions Développement d'un site Web ou d'une appli mobile 22 Juillet 2020
stats taux de rebond et durée sessions Débuter en référencement 7 Février 2019
Nouvelles sessions vs Utilisateurs Google Analytics 23 Novembre 2016
de 0 à 5O sessions/jour d'une seule ville ?? Google Analytics 12 Septembre 2016
[résolu] Sessions : lire le contenu alors qu'on ne sait pas comment il est nommé... Développement d'un site Web ou d'une appli mobile 25 Mai 2016
Différence énorme entre clics Facebook Ads et Sessions Google Analytics Google Analytics 9 Février 2016
Extraire les sessions pour chaque mois par source Google Analytics 30 Septembre 2015
Changement URL Facebook dans GA et diminution des sessions Google Analytics 25 Juin 2015
Unique Pageviews vs Sessions Google Analytics 13 Mai 2015
GA change sa terminologie : visiteurs devient sessions Google Analytics 17 Avril 2014
Supprimer les sessions via les URL dans Prestashop (token) Développement d'un site Web ou d'une appli mobile 2 Août 2012
[Ajax] Appel fichier externe et sessions Développement d'un site Web ou d'une appli mobile 17 Juillet 2012
Google Bot et Cookies et sessions Développement d'un site Web ou d'une appli mobile 11 Juin 2012
Sessions, cookies, hash. Développement d'un site Web ou d'une appli mobile 10 Mars 2012
Sessions PHP et Google Référencement Google 3 Mai 2011
Table phpbb_sessions de mon forum phpbb3 énorme Développement d'un site Web ou d'une appli mobile 21 Mars 2011
Espace membre, sessions et sécurisation en PHP Développement d'un site Web ou d'une appli mobile 12 Août 2010
[php] Sessions systématiques ? Développement d'un site Web ou d'une appli mobile 5 Juillet 2010
Problème indexation : duplicate content et identifiants de sessions - Zent Cart Crawl et indexation Google, sitemaps 15 Avril 2010