SESSION_ID : recherche d'un ID de session

SaveC Messages postés 13 Date d'inscription lundi 3 mars 2003 Statut Membre Dernière intervention 28 juillet 2005 - 28 juil. 2005 à 10:56
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 - 28 juil. 2005 à 14:39
Bonjour à tous,

Je cherche à vérifier si un utilisateur connecté à mon site possède un Identifiant de session déterminé.

J'ai trouvé sur la doc PHP, la fonction msession_find(), mais je ne sais pas l'utiliser.
Peut-etre est-il possible d'utiliser msession_list ou msession_listvar ???

Je suis à la recherche du code souce me permetant de résoudre mon problème.

@+
Chris

29 réponses

malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
28 juil. 2005 à 11:04
Hello,



quand tu as un utilisateur sur ton site, une session est cree pour lui.

Quand tu en as un second, idem.

Mais il faut voir ceci comme un autre script...tu ne pourras pas voir
les differentes sessions, a part en fouillant le repertoire de
sessions. ce qui ne t'aidera pas beaucoup en fait...



ceci dit, l'identifiant de session en cours, c'est le session_id ().
0
SaveC Messages postés 13 Date d'inscription lundi 3 mars 2003 Statut Membre Dernière intervention 28 juillet 2005
28 juil. 2005 à 11:21
Merci malalam,

je cherche justement à utiliser la fonction msession_find() pour vérifier si un SESSION_ID n'est pas en cours d'utilisation chez un utilisateur de mon site.

Si tu as un exemple de code, cela résoudrait mon problème.

@+
0
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 9
28 juil. 2005 à 11:28
Salut,



bah pourquoi tu veux faire ça ?



Ensuite pourquoi tu ne ferais pas un truc dans ce genre :



<?php

if(isset($_SESSION['variable']))

{

echo 'l\'utilisateur possède la variable';

}

else

{

$_SESSION['variable']='ok';

}
?>



enfin bon je ne sais pas ce que tu veux faire donc explique un peu plus stp :-)



a +
<hr size="2" width="100%">




<li>Entraide, dépannage et vulgarisation informatique: Mon site de vulgarisation informatique</li>
0
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 9
28 juil. 2005 à 11:28
merde j'ai oublié le session_start() (à rajouter après <?php)
<?php

session_start();

if(isset($_SESSION['variable']))

{

echo 'l\'utilisateur possède la variable';

}

else

{

$_SESSION['variable']='ok';

}

?>
<hr size="2" width="100%">




<li>Entraide, dépannage et vulgarisation informatique: Mon site de vulgarisation informatique</li>
0

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

Posez votre question
SaveC Messages postés 13 Date d'inscription lundi 3 mars 2003 Statut Membre Dernière intervention 28 juillet 2005
28 juil. 2005 à 11:37
Salut Anthomicro

Je souhaite connaitre la liste des identifiants de session en cours.

Pour cela il existe appremment une fonction : msession_list(), mais je ne sais pas l'utiliser.

Aurais tu un exemple de code pour m'aider ?

@+
0
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 9
28 juil. 2005 à 11:39
Essaie ça :



$tableau= msession_list();
$i =0;

$nb=count($tableau);



while($i<$nb)

{

echo $tableau[$i],'
';

$i++;

}
<hr size="2" width="100%">




<li>Entraide, dépannage et vulgarisation informatique: Mon site de vulgarisation informatique</li>
0
SaveC Messages postés 13 Date d'inscription lundi 3 mars 2003 Statut Membre Dernière intervention 28 juillet 2005
28 juil. 2005 à 11:45
Merci Anthomicro,


j'ai essayé ta solution, mais voici l'erreur :


"Fatal error: Call to undefined function: msession_list() "

Je suis en php version 4.3.3.

la fonction msession_list() n'est apparemment pas reconnue.

@+
0
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 9
28 juil. 2005 à 11:48
http://fr.php.net/manual/fr/function.msession-list.php



ça devrait fonctionner pourtant...



en même temps vu que cette fonction n'est pas documentée, bah tu bois
le bouillon... Bref sinon si tu peux tu ouvres le répertoire des
sessions et tu le scannes, m'enfin bon c'est pas à conseiller car ça
peut être désactivé sur les hébergements mutualisés :-)

<hr size="2" width="100%">




<li>Entraide, dépannage et vulgarisation informatique: Mon site de vulgarisation informatique</li>
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
28 juil. 2005 à 11:48
tu n'as pas la librairie activee.



Mais ce que j'ai lu sur les msessions ne me semble pas vraiment convenir...
0
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 9
28 juil. 2005 à 11:52
ah oui msession, ok laisse tomber ça...

<hr size="2" width="100%">




<li>Entraide, dépannage et vulgarisation informatique: Mon site de vulgarisation informatique</li>
0
SaveC Messages postés 13 Date d'inscription lundi 3 mars 2003 Statut Membre Dernière intervention 28 juillet 2005
28 juil. 2005 à 12:07
De qu'elle librairie s'agit-il ?
quel est son nom ?????

@+
0
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 9
28 juil. 2005 à 12:09
msession :-)

<hr size="2" width="100%">




<li>Entraide, dépannage et vulgarisation informatique: Mon site de vulgarisation informatique</li>
0
SaveC Messages postés 13 Date d'inscription lundi 3 mars 2003 Statut Membre Dernière intervention 28 juillet 2005
28 juil. 2005 à 12:39
Merci Anthomicro,


Je viens de m'apercevoir que cette librairie "msession" n'est pas disponible sous windows.
As tu une autre solution à me proposer ???

@+
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
28 juil. 2005 à 12:47
Non parce que c'est impossible, a moins de lire les sessions dans le repertoire, comme je te l'ai dit plus haut.

Chaque $_SESSION est unique a la session php lancee sur ton serveur. Si
tu fais un print_r ($_SESSION) tu te rendras bien compte que tu ne
verras que la session en cours. Le resultat sera donc different pour
chaque utilisateur.
0
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 9
28 juil. 2005 à 12:48
Tu comptes utiliser ça en local ?



Bah le scan de ton répertoire session par exemple, tu peux l'avoir via la fonction ini_get('session.save_path');

<hr size="2" width="100%">




<li>Entraide, dépannage et vulgarisation informatique: Mon site de vulgarisation informatique</li>
0
SaveC Messages postés 13 Date d'inscription lundi 3 mars 2003 Statut Membre Dernière intervention 28 juillet 2005
28 juil. 2005 à 12:57
OK, mais si je cherche les sessions en cours dans le repertoire (avec : ini_get('session.save_path') ), je trouve aussi des vieilles sessions provenant d'utilisateurs déconnectés.

@+
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
28 juil. 2005 à 13:00
ben ouais, lol.



regarde ca : session.gc_maxlifetime

http://de.php.net/manual/fr/ref.session.php
0
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 9
28 juil. 2005 à 13:04
ouais, donc une fois que tu scannes le dossier, tu utilises la fonction
filemtime() pour savoir si le fichier est plus vieux ou pas que ce que
tu souhaites garder

<hr size="2" width="100%">




<li>Entraide, dépannage et vulgarisation informatique: Mon site de vulgarisation informatique</li>
0
SaveC Messages postés 13 Date d'inscription lundi 3 mars 2003 Statut Membre Dernière intervention 28 juillet 2005
28 juil. 2005 à 13:12
Cette solution ne convient pas exactement à mon problème.

Je vous explique tout :

je pensais pouvoir utiliser les SESSION_ID comme identifiant de connexion sur mon site.
L'idée est d'enregistrer dans la base mysql le SESSION_ID, puis le supprimer en cas de déconnexion de l'utilisateur.

Hors, si je ne peux tester si un SESSION_ID existe toujours, alors je ne peux pas savoir si je peux supprimer l'enregistrement de ma base de donnée.

Donc, mon problème reste entier sous windows.

Peux-etre est-il possible de trouver une autre moyen ?

@+
0
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 9
28 juil. 2005 à 13:14
Bah tu ne pourras jamais savoir si il existe toujours en tant que
connecté sur ton site. Tu peux savoir si le session id existe toujours
si le filemtime() du fichier session est supérieur au time()-ini_get('session.gc_maxlifetime')



mais tu veux faire quoi exactement avec ton script ?


<hr size="2" width="100%">




<li>Entraide, dépannage et vulgarisation informatique: Mon site de vulgarisation informatique</li>
0