IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

EDI, CMS, Outils, Scripts et API PHP Discussion :

Gestion des sessions [Joomla!]


Sujet :

EDI, CMS, Outils, Scripts et API PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de Nillak
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    138
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Octobre 2006
    Messages : 138
    Par défaut Gestion des sessions
    Bonjour,
    je ne sais pas si mon problème peut ête résolu ou pas.

    Il y a une BDD qui est administrée par des scripts php, et ces scripts php sont utilisés par un client lourd. Je doit utiliser Joomla pour remplacer le client lourd et interfacer ces données tout en utilisant les mêmes scripts php.

    Mon problème :
    - ces scripts sont externes à Joomla et protégés dans un répertoire par un htaccess
    - ils récupèrent par les SESSIONS l'identifiant de l'utilisateur

    Or on sais que dans Joomla pour récupérer l'identifiant d'un utilisateur :
    suffisent

    J'ai donc tout naturellement créer une variable de sessions dans mon composant Joomla (qui possède un session_start()):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $_SESSION['idUtilisateur'] = $my->id;
    Seulement voilà, dans mon script php externe $_SESSION['idUtilisateur'] est vide (toujours avec un session_start() au début).

    Je n'arrive pas à faire communiquer par SESSION Joomla et un script php externe ... je dois dire que là je sèche vraiment .

    J'espère avoir été suffisamment clair et surtout que vous aurez des suggestions.

    MERCI d'avance.

  2. #2
    Membre émérite
    Avatar de viviboss
    Profil pro
    Inscrit en
    Août 2006
    Messages
    943
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Août 2006
    Messages : 943
    Par défaut
    Un echo $my->id; donne quoi ?

    C'est chaud ton truc, mettre les mains dans le code Joomla, c'est très ambitieux...
    Veni Vidi Vici
    -------------------------
    Mes articles : developpez.com ou bien vbview.net
    -------------------------
    Et SURTOUT ne pas oublier la bible PHP : --> php_manual_fr.chm!!!
    Et aussi : --> pear_manual_fr.chm!!!

    Ou encore : --> Les tutoriaux & cours PHP de Développez.com
    -------------------------

  3. #3
    Membre confirmé Avatar de Nillak
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    138
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Octobre 2006
    Messages : 138
    Par défaut
    Le echo $my->id me donne bien l'identifiant de l'utilisateur connecté, lorsque je le réalise dans mon composant. Mais je ne peux évidemment pas l'utiliser dans les scripts php externes.

    J'etais en train de me demander s'il ne fallait que je récupère l'id de la session dans les scripts externes, afin de redémarrer la session. Il me semble que Joomla stock cette varible dans un Cookies, n'est-ce pas ?

    j'avoue que je commence à saturer

  4. #4
    Expert éminent
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 815
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 815
    Billets dans le blog
    14
    Par défaut
    Je suis confronté exactement au même problème !

    Pour le moment, j'en suis là :
    J'ai bidouillé le composant wrapper pour récupérer le login utilisateur Joomla et ajouter à l'url lancée par le wrapper la variable loginutilisateur qui est utilisée par notre logiciel Carto Dynamique.

    Cette url est pour le moment un petit programme php qui require le premier programme (appli12b.php) lancé par Carto.

    appli12b.php vérifie l'utilisateur dans la base de données de Carto, définit le programme à lancer en fonction des droits de l'utilisateur et se termine par un morceau de javascript :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo "<script>this.window.location=\"" . $aecrire . "\";</script>"; // Lance le programme défini par une fonction php 'lance'
    C'est là que ça se gâte !
    Le programme se lance bien mais les variables de session sont perdues et le programme ne peut pas fonctionner.

    Help !
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole, en retraite... mais toujours Autoentrepreneur à l'occasion.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  5. #5
    Membre confirmé Avatar de Nillak
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    138
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Octobre 2006
    Messages : 138
    Par défaut
    Bon ma réponse a tardé, sorry
    Alors je me rappelle plus très bien et je ne retrouve pas exactement la solution que j'avais mis en place parceque depuis nous avons changé beaucoup de chose. Mais on va bien y arriver.

    Tite précision c'etait du Joomla 1.0.x
    bon, quoi qu'il arrive Joomla vide le tableau de SESSION donc ce n'est pas la solution.

    j'avais fait une fonction qui récupérait l'id de session :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
     
      function GetSessionID() {
        global $database, $my;
    		/* Session Cookie `name` */
    		$sessionCookieName 	= mosMainFrame::sessionCookieName();
    		/* Get Session Cookie `value` */
    		$sessioncookie 		= strval( mosGetParam( $_COOKIE, $sessionCookieName, null ) );
     
    		$sessionID = '';
    			/* Session ID / `value` */
    		if ( !$sessioncookie ) {
    			$query = "SELECT session_id "
    				. "\n FROM #__session"
    				. "\n WHERE username = '". $my->username."'"
    				. "\n AND userid = ". intval( $my->id )
    				;
    			$database->setQuery( $query );
    			$sessionID = $database->loadResult();
    		}
    		else {
    			$sessionID 	= mosMainFrame::sessionCookieValue( $sessioncookie );
    		}
     
    		return($sessionID);
      }
    Une fois que tu as le hash de session tu as accès à toutes les infos de l'utilisateur (connecté ou pas, session expiré ou pas, id de l'utilisateur et par jointure l'ensemble des infos de l'utilisateur). En effet, la table jos_sessions te permet de récupérer l'id de l'utilisateur.

    Donc cette fonction je l'utilisais dans le compo joomla et je passais la sessionID par POST à mon script php qui était dansun répertoire protégé par un htaccess. Ce répertoire n'acceptait que les post du serveur (vu que c'etait le serveur qui postait vers un script du serveur c'etait parfait). Pour ce qui est de la fonction de post j'utilisais les sockets, il y a des exemples sur le net, là je la retrouve pas.

    Voilà la solution que j'avais mis en place, ce qu ime permettait d'exécuter des scripts externes en utilisant les infos de connection de l'utilisateur.

    En fait je me servais systématiquement du hash de session qui a une durée de vie variable mais surtout pas de l'id utilisateur qui lui est permanent

    Bon j'espère e^tre clair et pouvoir t'aider avec ces quelques points.

  6. #6
    Expert éminent
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 815
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 815
    Billets dans le blog
    14
    Par défaut
    J'ai fini par y arriver avec une technique de ce genre effectivement.

    Il faut que je perfectionne encore mais pour le moment ça marche.

    Merci quand même pour la réponse. On ne sait jamais, ça peut servir.
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole, en retraite... mais toujours Autoentrepreneur à l'occasion.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Gestion des sessions avec applet
    Par Mister Nono dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 01/08/2006, 18h27
  2. [JSP] Gestion des sessions
    Par ze veritable farf dans le forum Servlets/JSP
    Réponses: 10
    Dernier message: 28/06/2006, 10h44
  3. [Struts][JSP]gestion des session en JSP
    Par zola dans le forum Struts 1
    Réponses: 6
    Dernier message: 27/04/2006, 16h23
  4. gestion des sessions
    Par jeff_! dans le forum Langage
    Réponses: 4
    Dernier message: 20/03/2006, 22h09
  5. [tomcat] gestion des sessions
    Par sebos63 dans le forum Tomcat et TomEE
    Réponses: 2
    Dernier message: 12/10/2004, 14h25

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo