Session entre perl vers php5
Bonjour à tous,
Depuis plusieurs jours je cherche de la documentation concernant ce sujet mais généralement je trouve l'information dans l'autre sens de php vers perl.
Mon interface est principalement basée sur du Perl mais la libraire jpgraph en PHP a été utilisé pour un bout de code/projet en PHP.
Je crée un login avec du CGI::Session en Perl. J'ai un script PHP qui allait lire dans le fichier crée associée (le nom du fichier est de type cgisess_INT) le mdp et le user_name pour pouvoir se connecter a la base.
Par securite, nous avons encrypte le mot de passe (bien entendu !).
Ayant la clé, qui permet de decrypter le mot de passe, j'ai essaye de ce bout de code :
Code:
1 2 3 4 5 6 7 8 9 10
|
$encrypted= $tab[1];
echo $encrypted;
$key = 'ma_cle_de_taille_adequate';
$cle_taille = mcrypt_module_get_algo_key_size(MCRYPT_blowfish);
$iv_taille = mcrypt_get_iv_size(MCRYPT_blowfish, MCRYPT_MODE_CBC);
$iv = mcrypt_create_iv($iv_taille, MCRYPT_RAND);
$cle = substr($key, 0, $cle_taille);
$pwd = mcrypt_decrypt(MCRYPT_blowfish, $cle, $encrypted, MCRYPT_MODE_CBC, $iv);
echo $pwd; |
Mais l'encrypted est mal recupere a la base (a la lecture des infos dans le fichier cgisess_INT, des caracteres etaient changes, des retours a la ligne apparaissent, je ne sais pas pourquoi).
Mais j'ai persisté vers une autre voie: j'ai utilisé PHP::Session :
Code:
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
|
my $q = new CGI;
my $usr = $q->param('usr');
my $pwd = $q->param('pwd');
my $session;
my $key = $global->{'key'};
if($usr ne '')
{
$session = new CGI::Session();
$session->expire('+10h');
my $id = $session->id();
$usr = $session->param('usr',$usr);
my $cipher = new Crypt::CBC(-key => $key,-cipher => 'Blowfish');
my $crypt = $cipher->encrypt($pwd);
my $php_session = PHP::Session->new($id);
$php_session->set('usr' => $usr);
$php_session->set('pwd' => $pwd);
$php_session->save;
$session->param('pwd',$crypt);
print $session->header(-type=>"text/html"); |
Il y a bien un fichier cree de type sess_INT (avec le mot de passe en clair mais je m'en occuperai apres) et dans mon scripts PHP, j'ai essaye basiquement :
Code:
1 2 3 4 5 6 7
|
<?php
session_start();
echo $_SESSION['usr']."<BR>";
echo $_SESSION['pwd']."<BR>";
?> |
Et bien entendu, ca ne marche pas: j'ai PHP5 .
J'ai lu chez CPAN a propos de PHP::Session:
Code:
1 2
|
PHP::Session provides a way to read / write PHP4 session files, with which you can make your Perl application session shared with PHP4. |
Est ce vraiment ce qui pose probleme? Parce que le fichier sess_INT est bien créé !
Enfin, selon cette source (http://stackoverflow.com/questions/8...ns-data-in-php) je me suis orientée aussi vers session_set_save_handler . Mais très peu d'informations sur comment utiliser ce module. L'avez vous déjà pratiqué ?
Enfin Djibril tu parlais de la possibilite d'un tuto sur le forum perl de developpez (http://www.developpez.net/forums/d12...e-session-php/). A-t-il été créé ? Je ne le trouve malheureusement pas.
Merci d'avance pour votre aide précieuse