Précédent   Forum des professionnels en informatique > PHP > Langage > Sessions
Sessions Forum d'entraide sur les sessions avec PHP. Avant de poster -> FAQ sessions, Cours sessions et Sources sécurité
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 13/07/2006, 15h16   #1
Membre du Club
 
Inscription : juin 2006
Messages : 215
Détails du profil
Informations forums :
Inscription : juin 2006
Messages : 215
Points : 50
Points : 50
Par défaut Session problème de récupération d'un champ

Bonjour,

Quand l'utilisateur est authentifier je voudrais récupérer le champ "nom" correspondant au login de la TABLE, mais pour une raison que je ne comprend pas cela ne fonctionne pas je vous montre ma page d'identification, et la page ou je voudrais faire appel au champ nom.
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
 
// on teste si une entrée de la base contient ce couple login / pass 
        $sql = 'SELECT url,nom FROM membre WHERE login="'.addslashes($_POST['login']).'" AND pass_md5="'.md5(addslashes($_POST['pass'])).'"'; 
        $req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error()); 
        $data = mysql_fetch_array($req); 
        $nom = $data ['nom']; 
 
        mysql_close(); 
 
        // si on obtient une réponse, alors l'utilisateur est un membre         
        if (mysql_num_rows($req) == 1) { 
            session_start(); 
            $_SESSION['login'] = $_POST['login']; 
            $_SESSION['nom'] = $nom; 
            //'url' = adresse du champ "nom" correspondant au login de session de la TABLE membre 
            $url = $data['url']; 
            header('Location:'.$url); 
            exit(); 
        }
Code :
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
 
<?php 
session_start(); 
if (!isset($_SESSION['login']) && !isset($_SESSION['nom'])) { 
    header ('Location: index.php'); 
    exit(); 
} 
?> 
 
<html> 
 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252"> 
<meta http-equiv="Content-Language" content="fr-be"> 
<title>Prestations du jour !</title> 
<style> 
<!-- 
.smallfont 
{ 
    font: 9px verdana, geneva, lucida, 'lucida grande', arial, helvetica, sans-serif; 
} 
--> 
</style> 
</head> 
 
<body background="img/grd-4px.gif" style="background-attachment: fixed"> 
 
<table border="0" id="table1" width="1240"> 
    <tr> 
        <td> 
        <p align="center"><font color="#0000FF" size="7"></font></p> 
        </td> 
    </tr> 
    <tr> 
        <td><font size="2"></font></td> 
    </tr> 
    <tr> 
        <td><font size="2"></font></td> 
    </tr> 
    <tr> 
        <td><font size="2">Tél : 0000000000</font></td> 
    </tr> 
</table> 
<table border="0" id="table2" width="1240"> 
    <tr> 
        <td> 
        <p align="center"><font size="4">Encodage des prestations <font color="#FF0000">tvc</font>@ble<font color="#FF0000">net</font> 
        du jour.</font></p> <? 
         echo "bonjour,".$_SESSION['nom']."" ; 
          ?>
Merci d'avance
dunbar est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/07/2006, 15h34   #2
Membre émérite
 
Avatar de guitou12
 
Guillaume
Inscription : juillet 2006
Messages : 813
Détails du profil
Informations personnelles :
Nom : Guillaume
Âge : 29

Informations forums :
Inscription : juillet 2006
Messages : 813
Points : 905
Points : 905
Envoyer un message via MSN à guitou12
Est tu sur que $nom est bien défini quand tu retournes un résultat ?

Avec un echo $nom ça donne quoi ? (en mettant ton header en commentaire)
__________________
Le . est la base de toute bonne concaténation, marre de voir des
echo "Mavar1 = $toto et Mavar2 = $titi";
ou pire echo 'Mavar1 = ',$toto,' et Mavar2 = ',$titi;
pratiquez plutôt le echo 'Mavar1 = '.$toto.' et Mavar2 = '.$titi;
guitou12 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/07/2006, 15h54   #3
Membre éprouvé
 
Homme
Inscription : avril 2005
Messages : 611
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 28
Localisation : Turquie

Informations forums :
Inscription : avril 2005
Messages : 611
Points : 459
Points : 459
je pense même que ta requete n'est pas bien écrite en faite il faudrai mieux faire ainsi je pense:
Code :
1
2
 
 $sql = 'SELECT url,nom FROM membre WHERE login=\''.addslashes($_POST['login']).'\' AND pass_md5=\''.md5(addslashes($_POST['pass'])).'\'';
maximenet est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/07/2006, 16h08   #4
Membre émérite
 
Avatar de guitou12
 
Guillaume
Inscription : juillet 2006
Messages : 813
Détails du profil
Informations personnelles :
Nom : Guillaume
Âge : 29

Informations forums :
Inscription : juillet 2006
Messages : 813
Points : 905
Points : 905
Envoyer un message via MSN à guitou12
Je trouve ça plus facile à lire comme ça mais il est vrai que la requête sur des strings en double quote c'est pas dit que la BDD aime...
Code :
$sql = "SELECT url,nom FROM membre WHERE login='".addslashes($_POST['login'])."' AND pass_md5='".md5(addslashes($_POST['pass']))."'";
__________________
Le . est la base de toute bonne concaténation, marre de voir des
echo "Mavar1 = $toto et Mavar2 = $titi";
ou pire echo 'Mavar1 = ',$toto,' et Mavar2 = ',$titi;
pratiquez plutôt le echo 'Mavar1 = '.$toto.' et Mavar2 = '.$titi;
guitou12 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/07/2006, 16h20   #5
Membre éprouvé
 
Homme
Inscription : avril 2005
Messages : 611
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 28
Localisation : Turquie

Informations forums :
Inscription : avril 2005
Messages : 611
Points : 459
Points : 459
je sais plus qui sur ce forum avait fait des test sur ta façon d'écrire et la mienne, guitou12.

en il en ai arriver à la conclusion qu'avec ta façon d'écrire le temps d'éxécution s'éleve à x2 presque par rapport à la mienne.

enfin là n'est pas le sujet, mais voilà pour l'info. Apres si tu fait des site à faible trafic çà passe très très bien dans les 2 cas

lol en plus c'est bien ce que tu dit dans ta signature non ?
maximenet est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/07/2006, 16h30   #6
Membre émérite
 
Avatar de guitou12
 
Guillaume
Inscription : juillet 2006
Messages : 813
Détails du profil
Informations personnelles :
Nom : Guillaume
Âge : 29

Informations forums :
Inscription : juillet 2006
Messages : 813
Points : 905
Points : 905
Envoyer un message via MSN à guitou12
Citation:
Envoyé par maximenet
je sais plus qui sur ce forum avait fait des test sur ta façon d'écrire et la mienne, guitou12.

en il en ai arriver à la conclusion qu'avec ta façon d'écrire le temps d'éxécution s'éleve à x2 presque par rapport à la mienne.

lol en plus c'est bien ce que tu dit dans ta signature non ?
Ce qui est dit dans ma signature c'est qu'il faut concaténer les variables et pas les coller directement dans la chaine, par contre dans ton exemple je trouve (et c'est mon avis que c'est pas forcément super lisible d'avoir des \' qui trainent un peu partout alors il faut s'adapter suivant le besoin (balise html, php pur etc etc) afin d'avoir un code le plus lisible et compréhensible possible.) D'ailleurs il ya un bout de FAQ la dessus Chapitre 2 lisibilité du code

Chapitre 3 : temps d'éxécution
__________________
Le . est la base de toute bonne concaténation, marre de voir des
echo "Mavar1 = $toto et Mavar2 = $titi";
ou pire echo 'Mavar1 = ',$toto,' et Mavar2 = ',$titi;
pratiquez plutôt le echo 'Mavar1 = '.$toto.' et Mavar2 = '.$titi;
guitou12 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/07/2006, 16h44   #7
Membre éprouvé
 
Homme
Inscription : avril 2005
Messages : 611
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 28
Localisation : Turquie

Informations forums :
Inscription : avril 2005
Messages : 611
Points : 459
Points : 459
oui c'est bien çà que j'avais lu également en faite.

moi j'ai prix l'habitude de toujours sortir les variable et de n'utiliser que des simple ', question d'habitude peut etre
maximenet 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 11h03.


 
 
 
 
Partenaires

Hébergement Web