|
Publicité ' | ||||||||||||||||||||||||
|
|
#1 |
|
Membre actif
![]() |
Bonjour,
Pour harmoniser les sessions de plusieurs applications différentes, j'aurais besoin de passer le SID d'une session en tant que variable dans la session d'une autre application puis que cette autre application ausa besoin de ce SID pour manipuler l'autre session. Pour m'assurer de ne pas être embêté par toutes sortes de mesures pour empêcher les pop-up, je désire donc placer dans ma page un frame qui contiendrait un fichier recevant en $_GET mon SID. Est-il possible de gérer ainsi deux sessions bien distinctes séparées par un simple frame? Y a-t-il un moyen que je n'aurais pas envisagé qui m'éviterait tout ce casse-tête?
__________________
http://www.overdrunk.net Pensez à la balise
|
|
|
00
|
|
|
#2 | |||
|
Membre chevronné
![]() Développeur Web Inscription : décembre 2004 Messages : 636 ![]() |
Citation:
As-tu essayé ceci : ? Code :
Les deux applis doivent évidamment être hébergées sur le même serveur sans quoi il est impossible de partager une session par quelque moyen que ce soit. PS : dis-moi si ça marche s.t.p.
__________________
Ne cliquez pas sur ce lien |
|||
|
|
00
|
|
|
#3 | ||
|
Membre émérite
![]() Alain Inscription : novembre 2005 Messages : 897 ![]() |
Salut
Il y a une chose relativement simple à faire, c'est de créer une table qui contiendrait tes différentes variables, associées à l'id de session, et au préalable enregistrées. Simple exemple de table (table_session): id_session nom prenom etc... Ensuite tu peux récupérer une session différente de celle en cours, voire même en récupérer plusieurs dans des templates distincts. Ceci en faisant une requête simple : $ Code :
__________________
Ce n'est pas parce que les choses sont difficiles qu'on n'ose pas les entreprendre. C'est parce qu'on n'ose pas les entreprendre qu'elles sont difficiles. |
||
|
|
00
|
|
|
#4 |
|
Membre actif
![]() |
La situation exacte est que je dois regrouper deux applications Squirrelmail et un Forum PhpBB. Lorsqu'un utilisateur s'authentifie dans un des deux squirrelmail, il est dirigé vers un portail qui enrichi la session d'informations pertinentes en rapport avec l'utilisateur. Un lien dans ce plugin permet par exemple de sauter sur le Forum PhpBB (Un fichier .php entre les deux applications simule le login et "bypass" cette étape). Une fois l'information de login donnée au forum PhpBB, je change de serveur car le forum est effectivement sur un autre serveur.
J'ai noté que la déconnection du forum se fait en passant deux valeurs en GET au fichier login.php (logout=true et le SID). Mon but est alors que ma session dans squirrelmail contienne le SID de la session du Forum pour qu'éventuellement le fichier signout de Squirrelmail puisse appeler la fermeture de la session du Forum. Précidément, j'avais pensé que je pourrais procéder de la façon suivante: • Lorsque le plugin Squirrelmail est ouvert, le fichier login.php dans le répertoire du plugin ajoute à la session de Squirrelmail les valeurs de session nécessaires au fonctionnement du plugin. • Lorsque l’usager clique sur le lien menant au forum, le fichier redirect.php toujours inclus dans le portail puise dans la base de données les informations d’authentification de l’usager et passe directement au fichier de validation des identités du forum en simulant que le formulaire a été rempli. • Lorsque le fichier d’authentification s’exécute, il crée une session propre au forum, récupère l’identifiant hexadécimal de cette session et le renvoie vers le portail pour qu’il soit inscrit en tant que valeur de session dans Squirrelmail. • Si l’utilisateur ferme sa session sur le portail, le fichier signout.php de Squirrelmail appelle le fichier d’authentification du forum en lui indiquant de fermer la session dont il a noté l’identifiant.
__________________
http://www.overdrunk.net Pensez à la balise
|
|
|
00
|
|
|
#5 |
|
Membre actif
![]() |
Alors si sur le serveur de mon Forum je charge une page quelconque qui contient la session du Forum et que dans cette page j'inclut dans mon Frame (http://autreserveur/mapage.php?sid=M0NS1D) est-ce que je pourrais ainsi réussir à ouvrir la session de mon Squirrelmail et y inscrire mon SID?
__________________
http://www.overdrunk.net Pensez à la balise
|
|
|
00
|
|
|
#6 | |||||
|
Membre émérite
![]() Alain Inscription : novembre 2005 Messages : 897 ![]() |
Citation:
Code :
Dans ta page appelée (mapage.php), il convient d'effectuer une requête pour collecter tous les éléments utiles puisque tu disposes désormais de l'id de session. Code :
Ensuite, rien ne t'empêche de faire un delete de cette session au moment de la déconnexion de l'utilisateur, afin d'éviter de surcharger la table. Enfin bon, c'est une idée, je l'ai déjà réalisé notemment pour un outil partagé.
__________________
Ce n'est pas parce que les choses sont difficiles qu'on n'ose pas les entreprendre. C'est parce qu'on n'ose pas les entreprendre qu'elles sont difficiles. |
|||||
|
|
00
|
|
|
#7 |
|
Membre actif
![]() |
Hmm, je me demande pourquoi il faudrait faire tout ça? Tout ce dont j'ai besoin moi c'est le SID. Le reste m'importe peu j'ai tout ce dont j'ai besoin. Aussi je trouve bizare de stocker des données éphémères telles des variables de session dans une base de données.
__________________
http://www.overdrunk.net Pensez à la balise
|
|
|
00
|
|
|
#8 | ||
|
Membre émérite
![]() Alain Inscription : novembre 2005 Messages : 897 ![]() |
Tu peux le récupérer de cette façon :
Code :
Il est courant d'entendre parler des agendas partagés (par exemple), et bien ils fonctionnent sur ce principe même. Je conçois cependant que ce n'est pas une méthode obligatoire mais elle peut rendre "service" selon l'application.
__________________
Ce n'est pas parce que les choses sont difficiles qu'on n'ose pas les entreprendre. C'est parce qu'on n'ose pas les entreprendre qu'elles sont difficiles. |
||
|
|
00
|
|
|
#9 | ||
|
Membre émérite
![]() Alain Inscription : novembre 2005 Messages : 897 ![]() |
En y réfléchissant, tu ne pourras passer que l'id de session dans ton url, et forcemment sans probléme. Mais celà ne servira à rien, tout du moins il ne sera pas exploitable et pour cause :
Exemple : Code :
Le choix du titre de ce post était pertinent.
__________________
Ce n'est pas parce que les choses sont difficiles qu'on n'ose pas les entreprendre. C'est parce qu'on n'ose pas les entreprendre qu'elles sont difficiles. |
||
|
|
00
|
|
|
#10 | ||||
|
Membre actif
![]() |
Fichier de la session à récupérer :
Code :
Code :
__________________
http://www.overdrunk.net Pensez à la balise
|
||||
|
|
00
|
|
|
#11 |
|
Membre émérite
![]() Alain Inscription : novembre 2005 Messages : 897 ![]() |
re,
Je te le souhaite car j'ai fait également des tests de mon côté. Mais différemment car pas utilisé la méthode iframe mais passé l'id en get (ou post en hidden) d'un site sur un autre. Et en effet, je récupérais l'id mais pas les $variables associées. Mais franchement, c'est étrange ! Qui dit autre serveur dit autre tableau de variable globale. C'est là où je pige pas par quel miracle ta procédure peut récupérer les différentes variables. hum....c'est creusant ce truc là !
__________________
Ce n'est pas parce que les choses sont difficiles qu'on n'ose pas les entreprendre. C'est parce qu'on n'ose pas les entreprendre qu'elles sont difficiles. |
|
|
00
|
|
|
#12 |
|
Membre actif
![]() |
Je suis allé m'amuser un peu dans le code du forum et je vois que c'est probablement carrément impossible de faire comme ça, et je me demande bien si ça pourrait même être possible à partir d'un même serveur. Existe-t-il un moyen d'aller piger dans les variables d'une autre application lorsque ces deux applications sont sur le même serveur?
__________________
http://www.overdrunk.net Pensez à la balise
|
|
|
00
|
|
|
#13 | ||
|
Membre émérite
![]() Alain Inscription : novembre 2005 Messages : 897 ![]() |
Salut
Je me disais bien........ Citation:
Citation:
__________________
Ce n'est pas parce que les choses sont difficiles qu'on n'ose pas les entreprendre. C'est parce qu'on n'ose pas les entreprendre qu'elles sont difficiles. |
||
|
|
00
|
|
|
#14 |
|
Membre chevronné
![]() Développeur Web Inscription : décembre 2004 Messages : 636 ![]() |
Pardon de revenir à la charge, mais as-tu essayé la solution que j'ai proposé plus haut ?
Parce-que moi je viens de tester, et si les deux applis sont sur le même serveur, ça marche très bien ... Par contre, si les applis sont sur des serveur différents, ça ne peut pas marcher.
__________________
Ne cliquez pas sur ce lien |
|
|
00
|
|
|
#15 |
|
Membre actif
![]() |
Ouais merci j'ai une assez bonne compréhension de comment passer et récupérer des valeurs, que ce soit sur le même serveur ou sur deux serveurs distants. Le problème maintenant c'est une limitation des possibilités dans ma 2e application. Je crois avoir trouvé une solution alors tout devrait être Okay même sur 2 serveurs distincts.
__________________
http://www.overdrunk.net Pensez à la balise
|
|
|
00
|
|
|
#16 |
|
Membre actif
![]() |
$_get !!
__________________
http://www.overdrunk.net Pensez à la balise
|
|
|
00
|
|
|
#17 |
|
Membre actif
![]() |
Je redonne des news dès que c'est terminé
__________________
http://www.overdrunk.net Pensez à la balise
|
|
|
00
|
|
|
#18 | |
|
Membre émérite
![]() Alain Inscription : novembre 2005 Messages : 897 ![]() |
Citation:
Passer des variables d'un site à l'autre, celà n'a jamais été le bout du monde, que ce soit en get ou post mais exploiter un ID de session sur un serveur tiers, c'est une autre paire de manches, voire impossible, et c'est ce qu'on s'évertuait à souligner ( en rapport avec ta question d'origine) .
__________________
Ce n'est pas parce que les choses sont difficiles qu'on n'ose pas les entreprendre. C'est parce qu'on n'ose pas les entreprendre qu'elles sont difficiles. |
|
|
|
00
|
|
|
#19 |
|
Membre chevronné
![]() Inscription : décembre 2005 Messages : 766 ![]() |
A partir du moment ou les appli sont sur le même serveur il n'y a rien d'autre à faire que la procédure habituelle normalement... .. .
@ tchaOo° |
|
|
00
|
|
|
#20 | |
|
Membre émérite
![]() Alain Inscription : novembre 2005 Messages : 897 ![]() |
Citation:
Ben si tu lis depuis le début, tu verras que ce n'est pas le cas.
__________________
Ce n'est pas parce que les choses sont difficiles qu'on n'ose pas les entreprendre. C'est parce qu'on n'ose pas les entreprendre qu'elles sont difficiles. |
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com