Variables de session

Résolu
cs_Aaron Messages postés 116 Date d'inscription lundi 29 juillet 2002 Statut Membre Dernière intervention 19 janvier 2009 - 19 juin 2007 à 04:58
cs_Aaron Messages postés 116 Date d'inscription lundi 29 juillet 2002 Statut Membre Dernière intervention 19 janvier 2009 - 20 juin 2007 à 00:44
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

J_G Messages postés 1406 Date d'inscription mercredi 17 août 2005 Statut Membre Dernière intervention 28 août 2007 9
19 juin 2007 à 21:39
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+
3
J_G Messages postés 1406 Date d'inscription mercredi 17 août 2005 Statut Membre Dernière intervention 28 août 2007 9
19 juin 2007 à 08:44
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+
0
setasan9 Messages postés 98 Date d'inscription lundi 14 juin 2004 Statut Membre Dernière intervention 16 mars 2009
19 juin 2007 à 12:31
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 ^^
0
cs_Aaron Messages postés 116 Date d'inscription lundi 29 juillet 2002 Statut Membre Dernière intervention 19 janvier 2009
19 juin 2007 à 15:10
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.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_Aaron Messages postés 116 Date d'inscription lundi 29 juillet 2002 Statut Membre Dernière intervention 19 janvier 2009
20 juin 2007 à 00:44
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.
0