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

PHP & Base de données Discussion :

[SQL] récupérer un id d'utilisateur


Sujet :

PHP & Base de données

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    108
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 108
    Par défaut [SQL] récupérer un id d'utilisateur
    Bonjour

    Donc j'ai une authentification à la page d'accueil de mon site et j'aimerai récupérer le numéro d'utilisateur de mon utilisateur pour ensuite afficher dans la page home les infos qui le concerne sulement lui.

    Comment puis je faire cela?

    Merci

  2. #2
    Membre Expert
    Inscrit en
    Janvier 2005
    Messages
    2 291
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 291
    Par défaut
    Tu as une page d'authentification donc l'utilisateur rentre un login et un mot de passe. tu dois surement ensuite vérifier sa validité en faisant une requete dans ta base non?
    C'est a ce moment la que tu pourras surement récupérer l'identifiant de l'utilisateur.

    Il faut alors que tu le mémorises dans une variable de session par exemple et a chaque fois que tu as besoin de donner des infos concernant l'utilisateur, tu récupères son id dans ta variable de session!

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    108
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 108
    Par défaut
    oki je vai regarder ça merci

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    108
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 108
    Par défaut
    voila j'ai utilisé la session sur ma page de connexion mais malheureusement il me dit que ma variable login n'est pas défini ce qui est normal puisque j'utilise un post donc il ne la voit pas, mon code ressemble à 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
    <?php
    include('connexion.inc');
     
    if (isset($_POST['login']) && isset($_POST['pass'])) { // test des l'existances des variables
        $sqlQuery = "Select COUNT(*) 
            FROM users
            WHERE login_user = '".mysql_real_escape_string($_POST['login'])."'
            AND  pass_user = '".mysql_real_escape_string($_POST['pass'])."'";
        $result = mysql_query($sqlQuery) or die('erreur '.$sqlQuery.' : '.mysql_error());
        $array = mysql_fetch_row($result);
        if($array[0] == 1) {
            session_start();
            $_SESSION['login'] = $login;
    		header("Location: accueil.php");
        } else {
            header("Location: index.php");
        }
    }
    ?>
    Comment puis je faire pour intégrer le $post dans mon^$session afin qu'il retrouve le login.

    Merci

  5. #5
    Membre Expert
    Inscrit en
    Janvier 2005
    Messages
    2 291
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 291
    Par défaut
    pourquoi pas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $_SESSION['login'] = $POST['login'];

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    108
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 108
    Par défaut
    en fait au moment de la verif des identifiants je voudrais récupérer le numéro d'utilisateur de la personne qui vient de se loguer pour que à ma page d'accueil je n'affiche que les choses qui la concerne

    Merci

  7. #7
    Membre Expert
    Inscrit en
    Janvier 2005
    Messages
    2 291
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 291
    Par défaut
    deux solutions :

    1/ tu stockes le login, et donc quand tu as besoin de chercher les infos sur un utilisateur tu les recherches par login (avec une jointure tu peux récupérer facilement les infos concernant un login meme dans une table différente)

    2/ tu changes ta requete de vérification du mot de passe pour qu'elle te renvoie l'id (au lieu d'un COUNT(*)) et tu le mémorises

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    108
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 108
    Par défaut
    voila ce que j'ai réussi à pondre :

    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
    <?php
    include('connexion.inc');
     
    if (isset($_POST['login']) && isset($_POST['pass'])) { // test des l'existances des variables
        $sqlQuery = "Select num_user 
            FROM users
            WHERE login_user = '".mysql_real_escape_string($_POST['login'])."'
            AND  pass_user = '".mysql_real_escape_string($_POST['pass'])."'";
        $result = mysql_query($sqlQuery) or die('erreur '.$sqlQuery.' : '.mysql_error());
        $array = mysql_fetch_row($result);
        if($array==FALSE)
    	{
    	header("Location: index.php");
    	}
    	header("Location: accueil.php");
    }
    ?>
    Le problème c'est que quand je met rien dans les identifiant ou un truc au pif bin il rentre quand même sur la page suivante

  9. #9
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2007
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2007
    Messages : 21
    Par défaut
    Le probleme du fait d'enlever le count, limite la sécurité de ton auhtentification.
    Le count permet de vérifier qu'il n'yai bien qu'un seul résultat, si tu renvoie l'id a la place, alors il n'est plus protéger.
    Enfin c'est vite dit car mysql_real_escape_string permet de supprimer tout les SQL présent dans les variables (mais une sécurité en plus c'est toujour mieux) ^^
    Alors Je pense que la meilleur solution est bien de garder le login et de faire les requetes avec. Le login est toujours unique alors aucun risque de doublons.

    Pour ce qui est de ton erreur,
    if($array==FALSE) => Renvoi sur page de démarage (accueil du site)
    if(!$array) plus adapté avec un else, sa mange pas de pain et plus compréhensible.
    Si ton probleme persiste, fait un echo de ta requete sql et test la directement sur MySQL pour regarder quel est le résultat qu'elle renvoi.

    Cordialement

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [AC-2007] Récupérer nom de l'utilisateur windows dans une requête SQL
    Par Dallemg dans le forum VBA Access
    Réponses: 3
    Dernier message: 02/02/2015, 16h04
  2. Réponses: 1
    Dernier message: 27/01/2006, 16h52
  3. [VB.NET] [SQL] Pb requête sql, récupérer des params. ?
    Par Pleymo dans le forum Windows Forms
    Réponses: 3
    Dernier message: 03/02/2005, 20h15
  4. Récupérer le nom d'utilisateur
    Par Zolex dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 04/06/2004, 11h40
  5. Réponses: 3
    Dernier message: 28/11/2003, 21h26

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