Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD
PHP & SGBD Forum d'entraide sur les SGBD avec PHP. Avant de poster : FAQ BDD, toutes les FAQ PHP, cours BDD et sources BDD
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 10/10/2007, 11h50   #1
Membre à l'essai
 
Inscription : avril 2007
Messages : 101
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 101
Points : 21
Points : 21
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
bromlecornu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/10/2007, 11h55   #2
Membre Expert
 
Inscription : janvier 2005
Messages : 2 288
Détails du profil
Informations forums :
Inscription : janvier 2005
Messages : 2 288
Points : 2 287
Points : 2 287
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!
koopajah est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/10/2007, 11h56   #3
Membre à l'essai
 
Inscription : avril 2007
Messages : 101
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 101
Points : 21
Points : 21
oki je vai regarder ça merci
bromlecornu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/10/2007, 14h07   #4
Membre à l'essai
 
Inscription : avril 2007
Messages : 101
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 101
Points : 21
Points : 21
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 :
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
bromlecornu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/10/2007, 14h10   #5
Membre Expert
 
Inscription : janvier 2005
Messages : 2 288
Détails du profil
Informations forums :
Inscription : janvier 2005
Messages : 2 288
Points : 2 287
Points : 2 287
pourquoi pas
Code :
$_SESSION['login'] = $POST['login'];
koopajah est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/10/2007, 14h41   #6
Membre à l'essai
 
Inscription : avril 2007
Messages : 101
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 101
Points : 21
Points : 21
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
bromlecornu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/10/2007, 14h48   #7
Membre Expert
 
Inscription : janvier 2005
Messages : 2 288
Détails du profil
Informations forums :
Inscription : janvier 2005
Messages : 2 288
Points : 2 287
Points : 2 287
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
koopajah est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/10/2007, 16h40   #8
Membre à l'essai
 
Inscription : avril 2007
Messages : 101
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 101
Points : 21
Points : 21
voila ce que j'ai réussi à pondre :

Code :
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
bromlecornu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/10/2007, 16h53   #9
Invité régulier
 
Inscription : juillet 2007
Messages : 17
Détails du profil
Informations forums :
Inscription : juillet 2007
Messages : 17
Points : 8
Points : 8
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
muadhib est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 06h27.


 
 
 
 
Partenaires

Hébergement Web