Session et recupération information dans la base de donnée

lorant59 Messages postés 42 Date d'inscription mardi 24 mars 2009 Statut Membre Dernière intervention 14 novembre 2012 - 17 oct. 2011 à 16:26
lorant59 Messages postés 42 Date d'inscription mardi 24 mars 2009 Statut Membre Dernière intervention 14 novembre 2012 - 17 oct. 2011 à 21:06
BONJOUR
Jai une base donnée avec une session et j'aimerai non pas recuperer le nom mais d autres informations comme le prenom par exemple
je cherche depuis hier mais je n'arrive pas alors que je suis que c'est tout simple.
je vous donner le code
<

if (isset($_POST['nom']) && isset($_POST['mdp'])){
$nom=$_POST['nom'];
$mdp=$_POST['mdp'];

$mysql = mysql_connect("localhost", "","");//local administrateur et mdp
if (!$mysql){ echo "Impossible de se connecter à la base Mysql";
exit;
}

$base=mysql_select_db(" ",$mysql);
if(!$base){echo "impossible de trouver la base authentification";
exit;
}

$requete "SELECT COUNT(*) FROM utilisateurs WHERE nom '".$nom."' and mdp = SHA1('".$mdp."')";

$resultat=mysql_query($requete, $mysql);
if(!$resultat){
echo "impossible d'éxécuter la requete.";
exit;
}
$resultat=mysql_query($requete, $mysql);
if(!$resultat){
echo "impossible d'éxécuter la requete.";
exit;
}
$ligne=mysql_fetch_row($resultat);
$nbre=$ligne[0];
if($nbre>0){
$_SESSION['utilisateurs']=$nom;
 }
 mysql_close($mysql);
 }

 if(isset($_SESSION['utilisateurs'])){
echo 'Bienvenue,'.$_SESSION['utilisateurs'].'
';
echo '[deconnection.php Deconnexion]
';
}else{
if (isset($nom)){
echo'connexion refusé.
';
}
else{
echo"vous n'etes pas connect.
";
}}

j'aimerai indiquer bienvenue le prenom de l'utilisateur aulieu du nom de l'utilisateur ligne 36
merci d'avance

3 réponses

cs_nemo_1 Messages postés 60 Date d'inscription jeudi 10 mars 2005 Statut Membre Dernière intervention 26 octobre 2011
17 oct. 2011 à 19:29
Chalute,

Alors généralement, on ne remplie pas sa session par des infos inutiles ou par flemme d'aller faire des opérations.

Déjà une question:

A quoi va te servir de passer plus d'info dans ta session?

Bon sinon, je te conseillerai de passer uniquement l'id de l'utilisateur (au moins tu es sur qu'il sera différent de jean charles et jean etienne), et après si tu veux lui dire bonjour jean etienne, tu fais une requete vers ta BDD et selectionne les éléments voulus.

Mais si tu veux vraiment passer le nom , sexe, taille (sexe? :)) tu pourras de 2 facons:

soit tu fais:
[list]
[*] $_SESSION['nom'] = "";
$_SESSION['prenom'] = "";
[*] $info_user = array('nom', 'prenom', 'loool', 'taille se..',)
$_SESSION['utilisateur'] = $info_user
/list

Ceci étant dit, il faudra changer ta requete sql de :
$requete "SELECT COUNT(*) FROM utilisateurs WHERE nom '".$nom."' and mdp = SHA1('".$mdp."')";

à

$requete "SELECT * FROM utilisateurs WHERE nom '".$nom."' and mdp = SHA1('".$mdp."') LIMIT 1";

Comme cela quand tu fetch cette query, tu veras si tu as un retour (if(mysql_num_rows() == 1) et en meme temps, tu auras les infos du client.

Mais je doit t'alerter sur un point essentiel.

Si je met comme nom: bonjou'r, ton code bugeuras car tu ne saintetize pas les insertions sql et tu t'expose à une injection sql donc ALERTE!!!

Bon courage
0
lorant59 Messages postés 42 Date d'inscription mardi 24 mars 2009 Statut Membre Dernière intervention 14 novembre 2012
17 oct. 2011 à 20:33
j ai modifier le code mais la plus rie ne s'affiche
if (isset($_POST['nom']) && isset($_POST['mdp'])){
$nom=$_POST['nom'];
$mdp=$_POST['mdp'];

$mysql = mysql_connect("localhost", "","");//local administrateur et mdp
if (!$mysql){ echo "Impossible de se connecter à la base Mysql";
exit;
}

$base=mysql_select_db("",$mysql);
if(!$base){echo "impossible de trouver la base authentification";
exit;
}

$requete "SELECT COUNT(*) FROM utilisateurs WHERE nom '".$nom."' and mdp = SHA1('".$mdp."')";

$resultat=mysql_query($requete, $mysql);
if(!$resultat){
echo "impossible d'éxécuter la requete.";
exit;
}
$resultat=mysql_query($requete, $mysql);
if(!$resultat){
echo "impossible d'éxécuter la requete.";
exit;
}
$ligne=mysql_fetch_row($resultat);
$nbre=$ligne[0];
if($nbre>0){
$_SESSION['utilisateurs']=$nom;
 }
 mysql_close($mysql);
 }

 if(isset($_SESSION['utilisateurs'])){
 $mysql = mysql_connect("localhost", "","");//local administrateur et mdp
if (!$mysql){ echo "Impossible de se connecter à la base Mysql";
exit;
}
mysql_select_db("",$mysql);
 $requete =mysql_query( 'SELECT * FROM utilisateurs  WHERE prenom=".mysql_real_escape_string($prenom)."');

if(mysql_num_rows($requete)){
$donnee_user=mysql_fetch_assoc($requete);
$_SESSION['prenom'] = $donnee_user['prenom'];
echo 'Bienvenue '.$_SESSION['prenom'];

 echo 'Bienvenue,'.$_SESSION['utilisateurs'].'
';
echo '[deconnection.php Deconnexion]
';
}
}else{
if (isset($nom)){
echo'connexion refusé.
';


0
lorant59 Messages postés 42 Date d'inscription mardi 24 mars 2009 Statut Membre Dernière intervention 14 novembre 2012
17 oct. 2011 à 21:06
j ai trouver
sur la commande select * from ... il ne faut pas mettre $prenom mais $nom. par contre je ne comprend pas pourquoi cela ne fonctionne pas avec prenom .. si quelqu'un peut m'expliquer , j'en serais reconnaissance
merci d'avance
laurent
0
Rejoignez-nous