Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Joomla et sessions...

14 views
Skip to first unread message

Denis Beauregard

unread,
Sep 29, 2009, 11:17:12 AM9/29/09
to
Bonjour,

Est-ce que Joomla d�truit la session quand on clique sur un lien
hors-Joomla ?

Je dois interfacer une application existante depuis Joomla. Pour
cette fin, j'ai cr�� un module contenant ces lignes :

<?php

$url="../dossier/index.php";
//URL relative pour conserver session selon doc PHP

$_SESSION['secret']="sdgafgsae";

?>

<a href="<?php echo $url."?SID=".session_id(); ?>"
target="_top">Acc&egrave;s aux bases de donn&eacute;es</a> <br>

Cela me donne un lien

http://127.0.0.1/MOI/dossier/index.php?SID=1eff4f54e4fabc880c9c02752c202032

mais quand je clique sur le lien et que je veux voir les variables de
session, aucune ne passe. De plus, le fichier de la session est vide
dans le cache (longueur = 0).


Est-ce que Joomla est cryptique au point d'avoir des sessions
(session_start me dit que la session est d�j� lanc�e) mais sans qu'on
puisse utiliser ces sessions sans passer par Joomla ? Mon client veut
utiliser Joomla pour la gestion des abonn�s mais je ne tiens pas �
passer 3 mois � d�coder la documentation interne de Joomla d'autant
plus qu'elle est incompl�te (aucun mot sur la reprise de session et
le relais vers une application externe depuis Joomla sauf le lien
simple sans passage de session, donc public).

Joomla cr�e pourtant un fichier de session dans le cache de EasyPHP,
donc je vois mal pourquoi on placerait les variables de session
ailleurs, surtout celles que je cr�� avec $_SESSION !!!


Denis

Denis Beauregard

unread,
Sep 29, 2009, 11:31:04 AM9/29/09
to
Le Tue, 29 Sep 2009 11:17:12 -0400, Denis Beauregard
<denis.b-at-franc...@nospam.com.invalid> �crivait dans
fr.comp.infosystemes.www.auteurs:

>Bonjour,
>
>Est-ce que Joomla d�truit la session quand on clique sur un lien
>hors-Joomla ?
>
>
>
>Je dois interfacer une application existante depuis Joomla. Pour
>cette fin, j'ai cr�� un module contenant ces lignes :

...


J'ajoute que session_id() affiche quelque chose mais que SID est
vide, ceci dans le module Joomla que j'ai �crit. Donc, au d�part,
il y a une anomalie !


Denis

Denis Beauregard

unread,
Sep 29, 2009, 6:09:31 PM9/29/09
to
Le Tue, 29 Sep 2009 11:17:12 -0400, Denis Beauregard
<denis.b-at-franc...@nospam.com.invalid> �crivait dans
fr.comp.infosystemes.www.auteurs:

>Bonjour,


>
>Est-ce que Joomla d�truit la session quand on clique sur un lien
>hors-Joomla ?

J'ai d�couvert une partie de la r�ponse et elle ne me pla�t pas
beaucoup !

Au lieu d'utiliser la session de PHP ou de laisser le d�veloppeur
le faire, on vide toutes les variables et on les place dans une
base de donn�es (ce qui explique peut-�tre pourquoi joomla est si
lent).

Bon, maintenant, comment simuler une session quand session_start et
tout le m�canisme ne peut pas �tre utilis� ?


Denis

Mickaël Wolff

unread,
Sep 29, 2009, 6:35:22 PM9/29/09
to
Denis Beauregard wrote:

>
> Au lieu d'utiliser la session de PHP ou de laisser le d�veloppeur
> le faire, on vide toutes les variables et on les place dans une
> base de donn�es (ce qui explique peut-�tre pourquoi joomla est si
> lent).

Pas n�cessairement. C'est une technique courante pour g�rer les sessions.

> Bon, maintenant, comment simuler une session quand session_start et
> tout le m�canisme ne peut pas �tre utilis� ?

Tu peut personnaliser le gestionnaire de session natif de PHP pour
qu'il utilises celui de Joomla.

--
Micka�l Wolff aka Lupus Michaelis
http://lupusmic.org

Seeking for a position <http://lupusmic.org/pro/>

Denis Beauregard

unread,
Sep 29, 2009, 7:44:25 PM9/29/09
to
Le Wed, 30 Sep 2009 00:35:22 +0200, Micka�l Wolff
<mickae...@laposte.net> �crivait dans
fr.comp.infosystemes.www.auteurs:

>Denis Beauregard wrote:
>
>>
>> Au lieu d'utiliser la session de PHP ou de laisser le d�veloppeur
>> le faire, on vide toutes les variables et on les place dans une
>> base de donn�es (ce qui explique peut-�tre pourquoi joomla est si
>> lent).
>
> Pas n�cessairement. C'est une technique courante pour g�rer les sessions.

En SQL ? Je m'attendrais � ce qu'on utilise des fichiers dans /tmp
dont l'acc�s est plus rapide que des enregistrements dans une base
mySQL. Mais c'est vrai que si on n'utilise pas /tmp, on ne laisse
pas � d'autres sites sur le m�me serveur une porte ouverte sur nos
visiteurs.

>> Bon, maintenant, comment simuler une session quand session_start et
>> tout le m�canisme ne peut pas �tre utilis� ?
>
> Tu peut personnaliser le gestionnaire de session natif de PHP pour
>qu'il utilises celui de Joomla.

J'avais pens� faire l'inverse, soit trouver comment Joomla g�re ses
sessions et adapter le code pour au moins prendre quelques variables
(typiquement, le courriel et le num�ro d'adh�rent, le reste �tant
superflu pour mon application). Comme il s'agit de la consultation
d'une base de donn�es disponible depuis quelques ann�es dans des
biblioth�ques publiques et priv�es, ce n'est pas aussi critique
que toute la gestion du site. Donc, je n'utiliserais que 3
informations, le num�ro de session et les courriels et num�ros pris
dans la table des sessions, puis je lancerais la session habituelle
de PHP.

Le hic, c'est que mon application sera limit�e � la version courante
de Joomla (donc, si Joomla change sa fa�on de g�rer les sessions, il
faudra modifier le code).


Denis

Mickaël Wolff

unread,
Oct 2, 2009, 3:08:53 PM10/2/09
to
Denis Beauregard wrote:

> En SQL ? Je m'attendrais � ce qu'on utilise des fichiers dans /tmp
> dont l'acc�s est plus rapide que des enregistrements dans une base
> mySQL. Mais c'est vrai que si on n'utilise pas /tmp, on ne laisse
> pas � d'autres sites sur le m�me serveur une porte ouverte sur nos
> visiteurs.

Il n'y a pas que �a. Si /a priori/ l'acc�s au fichier est plus
rapide, il peut etre bloquant et entrainer des pertes de performances
importantes. Avec une dizaine d'acc�s disque, on ne voit pas de
diff�rences. Mais d�s que les utilisateurs sont nombreux, peut-etre
100k, le passage par une base de donn�es r�duirait le nombre d'acc�s
disque � 3*nombre de tables pour des tables InnoDb. Et encore, il faut
penser au cache de MySQL.

> Le hic, c'est que mon application sera limit�e � la version courante
> de Joomla (donc, si Joomla change sa fa�on de g�rer les sessions, il
> faudra modifier le code).

Il faudra donc encapsuler correctement la consultation de la session
�trang�re.

Denis Beauregard

unread,
Oct 2, 2009, 3:39:53 PM10/2/09
to
Le Fri, 02 Oct 2009 21:08:53 +0200, Micka�l Wolff
<mickae...@laposte.net> �crivait dans
fr.comp.infosystemes.www.auteurs:

>Denis Beauregard wrote:


>
>> En SQL ? Je m'attendrais � ce qu'on utilise des fichiers dans /tmp
>> dont l'acc�s est plus rapide que des enregistrements dans une base
>> mySQL. Mais c'est vrai que si on n'utilise pas /tmp, on ne laisse
>> pas � d'autres sites sur le m�me serveur une porte ouverte sur nos
>> visiteurs.
>
> Il n'y a pas que �a. Si /a priori/ l'acc�s au fichier est plus
>rapide, il peut etre bloquant et entrainer des pertes de performances
>importantes. Avec une dizaine d'acc�s disque, on ne voit pas de
>diff�rences. Mais d�s que les utilisateurs sont nombreux, peut-etre
>100k, le passage par une base de donn�es r�duirait le nombre d'acc�s
>disque � 3*nombre de tables pour des tables InnoDb. Et encore, il faut
>penser au cache de MySQL.

Selon mon exp�rience sur un autre site (une autre association), il
y aura autour de 100 utilisateurs par jour, avec �ventuellement des
pointes � 500 par jour (cas extr�me). Sur mon site perso, autour de
500 � 1000 visiteurs par jour, j'utilise /tmp mais il n'y a pas de
partie priv�e. Par contre, j'ai un anti-aspirateur (mon site perso
a 90 000 documents html).

Cela dit, j'ai vu o� Joomla pla�ait ses sessions : dans une base SQL.
En gros, ils ont le num�ro de la session, le nom d'usager et son
courrier, et les variables d'environnement. Pour mes besoins, je
pourrais � la limite utiliser le num�ro de session pour valider que
c'est lanc� depuis Joomla et non directement, mais il reste que ce
sera limit� � cette version. Avec un peu de chance, Joomla ne
changera pas cette partie de fa�on importante durant les prochaines
ann�es.

>> Le hic, c'est que mon application sera limit�e � la version courante
>> de Joomla (donc, si Joomla change sa fa�on de g�rer les sessions, il
>> faudra modifier le code).
>
> Il faudra donc encapsuler correctement la consultation de la session
>�trang�re.

En fait, j'ai vu qu'ils avaient une alternative. Le code de Joomla
est archi-compliqu� avec des classes qui s'encha�nent et du code qui
change � la vol�e (du style include($nom-du-module) ). Mon code
est ind�pendant, une fois lanc�.


Denis

0 new messages