Probleme d'identification avec sessions PHP

Eléphanteau du PHP | 25 Messages

09 déc. 2005, 17:48

bonjour,

j'ai une question urgente :

je viens de mettre une ligne il y a peu mon site de petites annonces. Les gens doivent s'identifier pour poser une annonce. J'ai bien entendu utilisé des Sessions.

Après mettre identifié, une autre personne s'est aussi identifiée. J'ai actualisé ma page, et là grosse surprise je me suis retrouvé loggé avec l'identifiant de l'autre personne !!!!
C'est surement un probleme connu, si vous avez des infos je suis preneur !!

Merci à tous.

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

09 déc. 2005, 17:52

Montre nous le code que tu utilise pour valider l'enregistrement d'une personne
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Eléphanteau du PHP | 25 Messages

09 déc. 2005, 18:10

voici mon code :
$loginOK = false;     
    
    // On n'effectue les traitement qu'à la condition que les informations aient été effectivement postées
    if ( isset($_POST) && (!empty($_POST['pseudo'])) && (!empty($_POST['password'])) ) {
    
      extract($_POST);  

    
      // On va chercher le mot de passe afférent à ce login
      $sql = "SELECT pseudo_int, password_int FROM internaute WHERE pseudo_int = '".addslashes($pseudo)."' and compte_actif_int='oui'";
      $req = mysql_query($sql) or die('Erreur SQL !!<br> Merci de <a href="nous_contacter.php">nous contacter</a> si le problème persiste.');
      
      // On vérifie que l'utilisateur existe bien
      if (mysql_num_rows($req) > 0) {
         $data = mysql_fetch_assoc($req);
        
        // On vérifie que son mot de passe est correct
        if ($password == $data['password_int']) {
          $loginOK = true;
        }
      }
    }
    
    // Si le login a été validé on met les données en sessions
    if ($loginOK) {
      $_SESSION['pseudo'] = $data['pseudo_int'];
    }
    
    ?>
    <table border="0" width="780" align="center">
           <tr>
               <td width="180" align="center">
                    <table border="0" align="left" width="180">
                           <tr>
                               <td>
                                    <?
                                    // On affiche une phrase résumant les infos sur l'utilisateur courant
                                    if (!empty($_SESSION['pseudo'])) 
                                    {
                                        $sql_nb_eval ="select nb_eval_int from internaute where pseudo_int='".$_SESSION['pseudo']."'";
                                        $req_nb_eval = mysql_query($sql_nb_eval) or die('Erreur SQL !!<br> Merci de <a href="nous_contacter.php">nous contacter</a> si le problème persiste.');
                                        $data_nb_eval = mysql_fetch_assoc($req_nb_eval); 
                                       
                                        $note = $data_nb_eval['nb_eval_int'];
                                        
                                        $pseudo = $_SESSION['pseudo'];?>
                                        
                                        <script>
                                        function logout_confirm()
                                        { 
                                           var result = confirm("Voulez-vous vraiment vous déconnecter ?");
                                           if(result == true){
                                               document.location.href="logout.php";
                                           }
                                        } 
                                        </SCRIPT> 
                                        
                                        <?echo 'Bonjour <b>'.$_SESSION['pseudo'].'</b>(<font color="red"><a href="evaluations_recues_donnees.php?pseudo='.$pseudo.'" title="Nombre d\'échanges effectués">'.$note.'</a></font>)<br />
                                             <a href="javascript:logout_confirm();" style="text-decoration:none;color:2F2FFF;"><b onmouseover="this.style.color=\'red\'" onmouseout="this.style.color=\'2F2FFF\'">se déconnecter</b></a>';
                                    } else {
                                      echo 'Personne non identifiée';
                                    <?}
                                    ?>
                               </td>
                           </tr>
                    </table>
                    </td>
              </tr>
    </table>