Accord à l'amiable entre PHP et Perl ?...

hugo -  
 casa -
Bonsoir,

Je créé un site Web. Toutes les pages sont écrites en HTML/PHP, à l'exception d'une section qui est constituée de scripts PERL.

Or l'accès à certaines parties du site est restreint à des utilisateurs enregistrés sous un login et un mot de passe.

Pour les pages écrites en PHP, pas de problème, j'utilise une bête variable de session 'connecte' pour déterminer si j'affiche le contenu normal de la page ou un "Vous devez être connecté pour visualiser cette page".

Problème : comment puis-je déterminer dans mes scripts perl si l'utilisateur est connecté ou non ?
Y a-t-il un moyen de récupérer la variable de session PHP, ou sinon un substitut ?

Je précise que je tiens à éviter au maximum la solution extrême qui consiste à réécrire tout le code PHP en Perl, ou vice-versa, étant donné la somme de travail que cela représenterait et de plus, je n'ai pas trop le temps pour m' "amuser" à faire cela... ^^;;
A voir également:

4 réponses

hugo
 
Re-bonsoir

Il semble que j'aie trouvé mon bonheur :) :

-> http://dev.nexen.net/news/gen.php3/2002/07/10/821,0,1,0,0.html
-> http://search.cpan.org/dist/PHP-Session/

Quelqu'un a déjà testé ?
0
hugo
 
Re-bonsoir :)

Permettez-moi un

Raaaaaaaarrrrrrrrrrrggghhhhhhh

justifié ^^;

La fameuse librairie est en effet installée, mais j'ai beau éplucher sa documentation ou m'essayer à des recherches (infructueuses) sur le Web, rien n'y fait : je n'arrive pas à savoir comment on récupère une session PHP.
Tout ce que j'arrive à faire actuellement, c'est créer une nouvelle session, mais ça, je m'en fiche pas mal, vu que mon but, c'est de récupérer une variable de session précédemment créé ^^;

Pourtant, je suis certain d'avoir la solution sous les yeux, dans cette foutue doc -___- Je me dis que la réponse est peut-être dans l'autre classe de la libraire, à savoir PHP::Session::Serializer::PHP...

D'où une question toute bête qui en découle : c'est quoi un serializer ? ^^;

A titre indicatif, voici mon code actuellement; il fonctionne, mais il ne renvoie pas la réponse que je voudrais ^^;;

$session = PHP::Session->new($new_sid, { create => 1 });

# je veux récupérer la variable de session "connecte" que j'ai créé dans un fichier PHP précédemment.

if ( $session->is_registered('connecte') ) {
    print "l'utilisateur est connecté :)<P>";
    # la réponse que je serais super-content d'avoir ^^
}
else {
    print "l'utilisateur n'est PAS connecté :(";
    # la réponse que les dures réalités de la vie et de l'informatique me fournissent ^^;
}
0
hugo
 
YEEESSSSSSSSSSSSSS !!!!! ^_____________^

J'ai fini par trouver la solution qui - évidemment - coulait de source. 'fin bon, c'est l'informatique tout craché, ça : galérer des heures et des heures pour un truc tout con ^^

Dans mon immense mansuétude, je vous donne la solution :P :

il suffisait tout simplement :

- dans mon fichier PHP, de récupérer l'identifiant de la session courante

$id_session = session_id();


et de créer un champ caché contenant la valeur de cet identifiant dans mon formulaire

print("<INPUT type=\"hidden\" name=\"id_session\" value=".$id_session.">");


- dans le fichier PERL, plus qu'à chopper ce champ caché :) :

#! /usr/bin/perl
use PHP::Session;
use CGI;

(...)

my $req = new CGI;
my $id_session = $req->param('id_session');

$session = PHP::Session->new($id_session, { create => 1 });

# cas ou l'utilisateur est connecté
if ( $session->is_registered('connecte') ) {
   print "zêtes connecté";
}

else {
   print "zêtes pas connecté, ouh le vilain";
}



Et vala !
0
Casa
 
Merci ^^
0
casa
 
grngngng j'arrive pas a lire ma variable stocker dans la session.
pourtant je recup bien l'id de session. :'(
0