Variables de session

[Résolu]
Signaler
Messages postés
116
Date d'inscription
lundi 29 juillet 2002
Statut
Membre
Dernière intervention
19 janvier 2009
-
Messages postés
116
Date d'inscription
lundi 29 juillet 2002
Statut
Membre
Dernière intervention
19 janvier 2009
-
Bonjour,

Je récupère des valeurs d'une table d'une base de données de la façon suivante :
 

$req mysql_query("SELECT * FROM Users WHERE Login '$iden' AND $Password = '$pwd'");
$data = mysql_fetch_assoc($req);




J'aurais aimé savoir s'il existe une fonction, ou à défaut une méthode pour créer des variables de session sans avoir à écrire 50 fois quasiment la même ligne :


$_SESSION['login'] = $data['Login'];
$_SESSION['pwd'] = $data['Password'];
$_SESSION['or'] = $data['or'];


...

$_SESSION['var50'] = $data['var50'];




J'ai entendu parler d'une fonction LIST, mais je ne sais pas comment l'utiliser ni même si elle serait utile dans ce cas de figure.

Merci d'avance pour votre aide.

5 réponses

Messages postés
1406
Date d'inscription
mercredi 17 août 2005
Statut
Membre
Dernière intervention
28 août 2007
9
Salut,

"
Mieux vaut t-il faire une connexion à la base de données à chaque fois plutôt que d'avoir une 20e de variables de session?
"

Franchement, je pense qu'il vaut mieux interroger ta base ! Ben oui, sommes-toutes, une base de données est faite pour ça.... non ?
Mais pour être plus clair :
Tes variables de session sont enregistrées dans des fichiers textes. Pour les écrire, PHP doit "linéariser" les variables (cf la fonction serialize) + ouvrir le fichier de l'utilisateur actuellement identifié + écrire dedans. De plus, tu auras un fichier texte par utilisateur... Si 1000 utilisateurs sont connectés, 1000 fichiers. Pour finir, régulièrement PHP vérifie la date de péremption des fichiers de sessions, afin de les détruire.

Pour la base de données : les données sont dans un et un seul fichier (par base... enfin ça dépend du moteur). Elles y sont inscrites de façon optimale (binaire, compressé). Ces fichiers contiennent une mécanique d'indexation pour trouver rapidement les données. Et pour finir, d'outils pour retrouver ces données, les stocker en mémoire (hors de la mémoire de PHP).

Bref, une base de données est exactement faite pour supporter des interrogations à outrance ! Les sessions ne sont là que pour conserver des données périssables et contextuelles à un utilisateur précis...


J'espère avoir répondu à ta question

A+
Messages postés
1406
Date d'inscription
mercredi 17 août 2005
Statut
Membre
Dernière intervention
28 août 2007
9
Salut,


tu cherches certainement après "foreach" :
foreach ( $data as $clef => $valeur ) $_SESSION[$clef] = $valeur;

Mais je ne trouve pas très "propre" de stocker autant d'info en session... M'enfin, c'est toi qui voit.

A+
Messages postés
98
Date d'inscription
lundi 14 juin 2004
Statut
Membre
Dernière intervention
16 mars 2009

Je ne suis pas sur de comprendre le soucis, mais peut etre que si tu mettez toutes tes variables de session dans uns seule et unique  page et que, quand tu en a besoin, au lieu de tout retaper tu appels ta page qui contient tous les champs par une inlusion.

Par exemple :

session_variables.php :
$_SESSION['login'] = $data['Login'];
$_SESSION['pwd'] = $data['Password'];
$_SESSION['or'] = $data['or'];
...
$_SESSION['var50'] = $data['var50'];

pages_ou _tu_as_besoin_de_ces_variables.php :
include 'chemin/session_variables.php';

Encors une fois je ne suis pas sur d'avoir bien compris ton probleme, mais si c'est bien ca alors tant mieux ^^
Messages postés
116
Date d'inscription
lundi 29 juillet 2002
Statut
Membre
Dernière intervention
19 janvier 2009

Bonjour,

Merci à vous deux d'avoir répondu.

@J_G : Mieux vaut t-il faire une connexion à la base de données à chaque fois plutôt que d'avoir une 20e de variables de session?

@Setasan9 : Il suffit de faire session_start(); et d'otenir les variables via $_SESSION['quelquechose']. Une fois les variables enregistrées, plus besoin de les définir... Pas besoin de passer par un fichier intermédiaire je pense.
Messages postés
116
Date d'inscription
lundi 29 juillet 2002
Statut
Membre
Dernière intervention
19 janvier 2009

Hello,

Mon herbegeur (OVH) accepte 10 connexions simultannées à la base de données. Cela suffit-il pour l'interroger à outrance?

En tout cas, merci pour tes réponses.