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 :

Récupérer des données manquantes dans une session


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Inscrit en
    Octobre 2007
    Messages
    93
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 93
    Points : 49
    Points
    49
    Par défaut Récupérer des données manquantes dans une session
    Bonjour,

    J'ai un petit soucis pour récupérer des variables de sessions lors de ma connexion par le fichier Login.
    Je fais toutes les vérifications qui vont bien et j'enregistre les variables soumises par le formulaire, mais je n'arrive pas à me rappeler le code pour enregistrer la variable $_SESSION[id] pour récupérer ensuite cette variable dans le fichier Ajoutverif et la traduire en $member_id=$_SESSION[id]

    Les deux fichiers :

    Login
    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
    <?php
    require('config.php');
     
    // username and password sent from form
    $myusername=$_POST['login'];
    $passwd=$_POST['password'];
    $mypassword = md5($passwd);
     
    // To protect MySQL injection (more detail about MySQL injection)
    $myusername = stripslashes($myusername);
    $mypassword = stripslashes($mypassword);
    $myusername = mysql_real_escape_string($myusername);
    $mypassword = mysql_real_escape_string($mypassword);			
     
    //on vérifie si c'est bon
    $sql="SELECT db_login,db_paswd FROM membres WHERE db_login='".$myusername."' AND db_paswd='".$mypassword."'";
    $result=mysql_query($sql);
     
    // Mysql_num_row is counting table row
    $count=mysql_num_rows($result);
    // If result matched $myusername and $mypassword, table row must be 1 row
     
    if($count==1)
    {
     
    // Register $myusername, $mypassword and redirect to file "login_success.php"
    session_register("myusername");
    session_register("mypassword");
    header("location:ajout.php");
    }
    else
    {
    echo "Mauvais mot de passe";
    }
    ?>
    Le fichier verif avec tout ce qu'il faut en haut (session start and co)
    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
    <?php
    // Partie membre		
    if(isset($_GET['id'])) 
    {
    $sql="SELECT id,db_login,db_paswd FROM membres WHERE db_login='".$myusername."' AND db_paswd='".$mypassword."'";
    $req = mysql_query($sql) or die('Erreur SQL !'.$sql.''.mysql_error());
    $member_id = mysql_fetch_assoc($req);
     
    // vérification du formulaire avant insertion
    if ($_POST['valide'] == 1) 
    {
    	// Ajout membre_id 
    	$member_id = $_SESSION['id'];
    	$nickFR = $_POST['nickFR'];
    	$nickGB = $_POST['nickGB'];
    merci de votre aide

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    session_register() ne devrait plus être utilisé.
    tu declares tes variables de session directement $_SESSION['var'] = xxxxx

    En dehors de ce point, je n'ai rien compris a ton probleme
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre du Club
    Inscrit en
    Octobre 2007
    Messages
    93
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 93
    Points : 49
    Points
    49
    Par défaut
    erf bon je m'explique plus simplement.

    Dans mon fichier login, je vérifie si l'utilisateur est bien dans la base, puis je garde ses informations en session.
    Ces informations sont le login et le password.
    Je souhaiterai en plus de ces deux infos, récupérer en session également l'id qui correspond à ce login et ce password.

    Cette donnée me sera utile pour une insertion dans la base de données lors de la saisie de la fiche.

    Or je ne me souviens plus comment mettre plusieurs informations dans ma session en dehors des login et pass.

    Est-ce plus clair?

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Desolé non ce n'est pas plus clair pour moi.
    Si tu veux l'id, il suffit de le recuperer dans ta requête (plutot que de recuperer le login et le mot de pass que tu as déjà) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $sql="SELECT id FROM membres WHERE db_login='".$myusername."' AND db_paswd='".$mypassword."'";
    $result = mysql_query($sql);
    $row = mysql_fetch_assoc($result);
    Et de l'enregistrer en session comme les autres :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $_SESSION['id'] = $row['id'];
    Sinon pour le reste du code que tu nous as mis :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $sql="SELECT id,db_login,db_paswd FROM membres WHERE db_login='".$myusername."' AND db_paswd='".$mypassword."'";
    La tu ne devrais pas avoir $_SESSION['myusername'] et $_SESSION['mypassword'] au lieu de $myusername et $mypassword ?


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $member_id = mysql_fetch_assoc($req);
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $member_id = $_SESSION['id'];
    La il y a une incoherence entre les deux lignes, tu affectes successivement à la variable des données qui n'ont rien à voir entre elles.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre du Club
    Inscrit en
    Octobre 2007
    Messages
    93
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 93
    Points : 49
    Points
    49
    Par défaut
    En fait j'ai deux fichiers.

    Un fichier Login.php pour l'identification et tout ce qui va avec.
    Un fichier Verifajout.php pour valider les informations de mon formulaire de personnage avant insertion dans ma base.

    Dans le fichier login.php je cherche à authentifier mon utilisateur (login et password) et si possible à récuper également l'id lors de la requête et l'enregistrer dans une session.

    Dans le fichier verifajout.php qui fait tous les contrôles avant insertion, je souhaiterai vérifier si j'ai bien le $_SESSION[id] que je vais utiliser par la suite dans une variable pour faire une jointure (qui fonctionne déjà si je peux récupérer cette variable)
    J'avais fait qqc avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    if(isset($_GET['id'])) 
    {
    $sql="SELECT id,db_login,db_paswd FROM membres WHERE db_login='".$myusername."' AND db_paswd='".$mypassword."'";
    $req = mysql_query($sql) or die('Erreur SQL !'.$sql.''.mysql_error());
    $member_id = mysql_fetch_assoc($req);
    pour savoir si j'avais bien les données, mais je pense que je fais une connerie.

  6. #6
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    vérifier si j'ai bien le $_SESSION[id]
    Y'a peut etre une incoherence la
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  7. #7
    Membre du Club
    Inscrit en
    Octobre 2007
    Messages
    93
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 93
    Points : 49
    Points
    49
    Par défaut
    oui, je pense aussi, mais je suis en train de chercher la solution

    en fait je souhaiterai tout mettre dans le fichier login.php de manière à ne récupérer que le $_SESSION[id] pour le traiter dans mon verifajout.php puisque j'ai le session_start() au debut.

    Mais je ne sais pas comment enregistrer le $_SESSION[id] tout comme le login et le pass. En faisant la requête qui inclue le champ id, je n'arrive pas à le récupérer, j'ai tenter de seulement l'afficher avec un echo et je n'ai pas la donnée ...

    Autre solution, refaire entièrement le login.php pour avoir le login, le pass et l'id dans une session, mais je sèche

  8. #8
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Je te l'ai mis :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $sql="SELECT id FROM membres WHERE db_login='".$myusername."' AND db_paswd='".$mypassword."'";
    $result = mysql_query($sql);
    $row = mysql_fetch_assoc($result);
    $_SESSION['id'] = $row['id'];
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  9. #9
    Membre du Club
    Inscrit en
    Octobre 2007
    Messages
    93
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 93
    Points : 49
    Points
    49
    Par défaut
    Donc ca donnerai ca?

    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
    <?php
    require('config.php');
     
    // username and password sent from form
    $myusername=$_POST['login'];
    $passwd=$_POST['password'];
    $mypassword = md5($passwd);
     
    // To protect MySQL injection (more detail about MySQL injection)
    $myusername = stripslashes($myusername);
    $mypassword = stripslashes($mypassword);
    $myusername = mysql_real_escape_string($myusername);
    $mypassword = mysql_real_escape_string($mypassword);			
     
    //on vérifie si c'est bon
    $sql="SELECT db_login,db_paswd,id FROM membres WHERE db_login='".$myusername."' AND db_paswd='".$mypassword."'";
    $result=mysql_query($sql);
    $count=mysql_num_rows($result);
     
    if($count==1)
    {
    $row = mysql_fetch_assoc($result);
    $_SESSION['id'] = $row['id'];
    $_SESSION['db_login'] = $myusername;
    $_SESSION['db_paswd'] = $myuserpassword;
    header("location:ajout.php");
    }
    else
    {
    echo "Mauvais mot de passe";
    }
    ?>

  10. #10
    Membre du Club
    Inscrit en
    Octobre 2007
    Messages
    93
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 93
    Points : 49
    Points
    49
    Par défaut
    flûte cela ne marche toujours pas, quelqu'un aurait une piste... je dois coder comme un ouzbec en fait.(je sais, ce n'est pas gentil pour les ouzbecs)

Discussions similaires

  1. Réponses: 1
    Dernier message: 06/01/2014, 14h44
  2. Récupérer des données xml dans une JList
    Par Jarell dans le forum Format d'échange (XML, JSON...)
    Réponses: 2
    Dernier message: 06/04/2013, 14h27
  3. Récupérer des fils twitter dans une base de données ?
    Par H.ile dans le forum Décisions SGBD
    Réponses: 1
    Dernier message: 16/09/2011, 09h09
  4. Réponses: 1
    Dernier message: 15/09/2008, 10h21
  5. Récupérer les données interbase dans une TStringGrid
    Par Ousse dans le forum Bases de données
    Réponses: 1
    Dernier message: 24/03/2005, 12h51

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