IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Probleme d'identification avec sessions PHP


Sujet :

Langage PHP

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2005
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 23
    Points : 8
    Points
    8
    Par défaut Probleme d'identification avec sessions PHP
    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.

  2. #2
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2005
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 23
    Points : 8
    Points
    8
    Par défaut
    voici mon code :




    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    $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>

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 42
    Points : 47
    Points
    47
    Par défaut
    y a pas de session_start() au début de ta page, ça pourrait venir de ça.

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2005
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 23
    Points : 8
    Points
    8
    Par défaut
    si si, j'ai bien un session_start() beaucoup plus haut dans ma page...

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 70
    Points : 53
    Points
    53
    Par défaut
    Pour moi, le problème vient de la base de donnée: le fait est que lorsque tu actualise ta page, le script PHP est relu et réinterprété côté serveur.

    A ce moment, ton identifiant de session doit aussi avoir le problème qu'il correspond aussi à l'autre personne. Donc, cela veut dire qu'en relisant ton script, une requête doit modifier la base.

    Fait attention ailleurs dans ton script, tes UPDATE qu'ils aient une bonne condition WHERE. Tu doit aussi faire que le loggin et le mot de passe doivent respectivement être clé primaire et clé unique dans la base, comme ça, pas de doublons !

    A+

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2005
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 23
    Points : 8
    Points
    8
    Par défaut
    j'ai peur de pas trop comprendre...

    sur cette page j'ai que des select, pas d'update, donc je ne pense pas que ma base soit modifiée. dans mes autres pages, tous mes update on bien une condition where.

    Pour le login, c'est bien une clé primaire et clé unique dans la base. Par contre pas pour le password, car plusieurs personnes peuvent avoir le meme password...


    merci quand meme pour tes explications, peut etre peux tu m'éclairer un peu plus sur tout ca...

Discussions similaires

  1. [AJAX] Authentification PHP-Ajax avec SESSION PHP
    Par llaffont dans le forum Contribuez
    Réponses: 2
    Dernier message: 09/08/2012, 16h26
  2. Authentification PHP-Ajax avec SESSION PHP
    Par llaffont dans le forum Langage
    Réponses: 0
    Dernier message: 23/11/2010, 15h11
  3. Probleme d'identification avec membership
    Par zax-tfh dans le forum ASP.NET
    Réponses: 1
    Dernier message: 31/01/2010, 11h36
  4. Probleme de passage de session php/jsp
    Par onimougwo dans le forum Servlets/JSP
    Réponses: 3
    Dernier message: 05/04/2007, 17h34
  5. Probleme d'affichage avec script php
    Par Misoss dans le forum Langage
    Réponses: 2
    Dernier message: 22/06/2006, 19h50

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo