C'est un très vieux tuto que j'ai retrouvé par hasard dans ma mailbox dvp mais j'ai l'impression qu'il n'a jamais été mis en ligne. J'espère néanmoins qu'il est toujours d'actualité (ou pas, parce qu'en fait ca veut dire qu'on n'aurait pas progressé en 5 ans)
Il s'agit tout simplement de pouvoir faire passer de l'information dans un le cadre d'un site web hétérogène php/perl, à l'aide des sessions.
Bien sûr, il faut d'un côté un script php qui crée une session :
Maintenant, le script Perl va devoir retrouver la session php créée s'il veut récupérer les infos qu'elle contient.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 <?php session_save_path('C:\TEMP'); # demande au navigateur de sauver le cookie en se basant sur le répertoire C:\TEMP session_name('Session_PHP'); # on nomme la session, mais si on le zappe par défaut la session se nomme PHPSESSID, cf le fichier de conf de php ;) session_start(); # on crée la session, attention, il ne faut rien mettre d'autre avant cette ligne que des infos paramétrant la session, sous risque de plantage du script ;) $_SESSION["nature"] = "ciel"; # les données que nous allons récupérer $_SESSION["couleur"] = "bleu"; header("Location: http://www.monsiteamoi.com/test.cgi"); # pour l'exemple, on fait une redirection vers un script perl, qui va devoir se débrouiller pour retrouver les petits ! ?>
Il faut commencer par partir du principe qu'une session est représentée par un cookie, et un cookie, en perl, on le récupère comme ca :
Ici la variable $cookie a récupéré l'id de session créé par le script php. On utilise ensuite le module PHP::Session pour en lire le contenu plus simplement :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 use strict; use CGI; my $cgi = new CGI; my $cookie = $cgi->cookie(-name => "Session_PHP");
donc au final :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 use PHP::Session; my $session = PHP::Session->new($cookie,{save_path => 'C:\TEMP'}); # on récupère la session, en lui disant où elle est cachée my $nature = $session->get('nature'); # et on récupère le contenu des données my $couleur = $session->get('couleur'); print "Données :<br>"; print "nature : $nature<br>"; print "couleur : $couleur<br>";
Bon, je pense qu'il n'y a pas grand chose à ajouter, avec ca vous devez être capable de jouer avec les sessions de php vers Perl
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 #!C:\Perl\bin\perl.exe -w use strict; use CGI; use PHP::Session; my $cgi = new CGI; print $cgi->header; print $cgi->start_html('Récupération de données d\'une session PHP'); my $cookie = $cgi->cookie(-name => "Session_PHP"); my $session = PHP::Session->new($cookie,{save_path => 'C:\TEMP'}); my $nature = $session->get('nature'); my $couleur = $session->get('couleur'); print "Données :<br>"; print "nature : $nature<br>"; print "couleur : $couleur<br>"; print $cgi->end_html;![]()
Partager