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 23/07/2007, 17h11   #1
Nouveau Membre du Club
 
Inscription : mai 2006
Messages : 156
Détails du profil
Informations forums :
Inscription : mai 2006
Messages : 156
Points : 34
Points : 34
Par défaut Tableau en session

Bonjour, je ne connais pas encore bien les sessions sous php, et j'aimerai savoir comment créer un tableau stocké en session, pour pouvoir y ajouter 2 éléments (un numero et un text qui provient de la base de donnée), et la possibilité de les supprimer ?

Merci
leroidje est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/07/2007, 17h20   #2
Expert Confirmé
 
Avatar de Séb.
 
Inscription : mars 2005
Messages : 2 827
Détails du profil
Informations personnelles :
Âge : 34
Localisation : France

Informations professionnelles :
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : mars 2005
Messages : 2 827
Points : 3 459
Points : 3 459
Et bien il suffit tout simplement d'affecter ton tableau à $_SESSION.
Exemple :

Code :
$_SESSION['user'] = array('id' => 123, 'nickname' => 'leroidje') ;
Ensuite pour y accéder :

Code :
echo $_SESSION['user']['nickname'] ;
Pour effacer l'entrée :

Code :
unset($_SESSION['user']) ;
__________________
Un problème exposé clairement est déjà à moitié résolu
Keep It Smart and Simple
Séb. est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/07/2007, 17h26   #3
Nouveau Membre du Club
 
Inscription : mai 2006
Messages : 156
Détails du profil
Informations forums :
Inscription : mai 2006
Messages : 156
Points : 34
Points : 34
Est ce possible de faire plusieur enregistrement, et ensuite les affiché avec une boucle sous forme de fonction ?
leroidje est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/07/2007, 17h47   #4
Expert Confirmé
 
Avatar de Séb.
 
Inscription : mars 2005
Messages : 2 827
Détails du profil
Informations personnelles :
Âge : 34
Localisation : France

Informations professionnelles :
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : mars 2005
Messages : 2 827
Points : 3 459
Points : 3 459
Citation:
Envoyé par leroidje
Est ce possible de faire plusieur enregistrement, et ensuite les affiché avec une boucle sous forme de fonction ?
Bien sûr. $_SESSION est avant tout un TABLEAU.

Code :
1
2
3
4
$_SESSION['users'] = array( ) ;
$_SESSION['users'][ ] = array('id' => 123, 'nickname' => 'Julien') ;
$_SESSION['users'][ ] = array('id' => 234, 'nickname' => 'Sophie') ;
...
Ensuite tu peux boucler sur $_SESSION['users'], ex :

Code :
1
2
3
foreach ( $_SESSION['users'] as $user ) {
    echo "Pseudo : {$user['nickname']} ({$user['id']})\r\n" ;
}
__________________
Un problème exposé clairement est déjà à moitié résolu
Keep It Smart and Simple
Séb. est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/07/2007, 10h01   #5
Nouveau Membre du Club
 
Inscription : mai 2006
Messages : 156
Détails du profil
Informations forums :
Inscription : mai 2006
Messages : 156
Points : 34
Points : 34
Comment faire pour effacer une seule entrée ? (par ex la 2eme)
Si j'ai bien compri
Code :
1
2
 
unset($_SESSION['users'][234]);
leroidje est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/07/2007, 14h26   #6
Expert Confirmé
 
Avatar de Séb.
 
Inscription : mars 2005
Messages : 2 827
Détails du profil
Informations personnelles :
Âge : 34
Localisation : France

Informations professionnelles :
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : mars 2005
Messages : 2 827
Points : 3 459
Points : 3 459
Citation:
Envoyé par leroidje
Comment faire pour effacer une seule entrée ? (par ex la 2eme)
Si j'ai bien compri
Code :
1
2
 
unset($_SESSION['users'][234]);
Non, là ce serait si on avait :

Code :
$_SESSION['users'][234] = array('id' => 234, 'nickname' => 'Sophie') ;
Donc le cas échéant pour la 2nde entrée :

Code :
unset($_SESSION['users'][1]) ;
__________________
Un problème exposé clairement est déjà à moitié résolu
Keep It Smart and Simple
Séb. est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/07/2007, 11h11   #7
Nouveau Membre du Club
 
Inscription : mai 2006
Messages : 156
Détails du profil
Informations forums :
Inscription : mai 2006
Messages : 156
Points : 34
Points : 34
Une dernière question:
comment savoir si par exemple cette ligne est deja dans le tableau ?
Code :
1
2
 
$_SESSION['users'][ ] = array('id' => 123, 'nickname' => 'Julien') ;
si cette ligne n'y ai pas alor je l'insert sinon j'ecris un message

je suppose:
Code :
1
2
3
4
5
6
7
8
9
 
if(!isset(????))
{
     // ajouter ds $_SESSION
}
else
{
    // echo message
}
leroidje est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/07/2007, 11h25   #8
Membre éclairé
 
Avatar de nicocsgamer
 
Inscription : mars 2005
Messages : 324
Détails du profil
Informations personnelles :
Âge : 27
Localisation : Luxembourg

Informations forums :
Inscription : mars 2005
Messages : 324
Points : 365
Points : 365
Envoyer un message via MSN à nicocsgamer
if($_SESSIONS['users["id"]'] == 234)
nicocsgamer est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/07/2007, 11h38   #9
Nouveau Membre du Club
 
Inscription : mai 2006
Messages : 156
Détails du profil
Informations forums :
Inscription : mai 2006
Messages : 156
Points : 34
Points : 34
Ca ne marche pas....j'ai cette erreur:
Notice: Undefined index: gestion["id"] in......
leroidje est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/07/2007, 12h07   #10
Expert Confirmé
 
Avatar de Séb.
 
Inscription : mars 2005
Messages : 2 827
Détails du profil
Informations personnelles :
Âge : 34
Localisation : France

Informations professionnelles :
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : mars 2005
Messages : 2 827
Points : 3 459
Points : 3 459
Citation:
Envoyé par leroidje
Une dernière question:
comment savoir si par exemple cette ligne est deja dans le tableau ?
Si tu suis ce modèle :

Code :
$_SESSION['users'][ ] = array('id' => 123, 'nickname' => 'Julien') ;
Alors il faudra boucler sur $_SESSION['users'] et comparer chaque id

Par contre si tu suis ce modèle :

Code :
$_SESSION['users'][123] = array('id' => 123, 'nickname' => 'Julien') ;
Tu peux faire :

Code :
if ( isset($_SESSION['users'][(int)$id]) ) { ...
(le (int) est important car si $id n'est pas un entier ça peut poser pb)
__________________
Un problème exposé clairement est déjà à moitié résolu
Keep It Smart and Simple
Séb. est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 12h30.


 
 
 
 
Partenaires

Hébergement Web