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

Web Perl Discussion :

Session entre perl vers php5


Sujet :

Web Perl

  1. #1
    Membre régulier Avatar de fripette
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    241
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 241
    Points : 71
    Points
    71
    Par défaut 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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : 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
     
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  2. #2
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 818
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 818
    Points : 499 183
    Points
    499 183
    Par défaut
    Bonjour,

    Dans le lien que tu montres, je ne me vois pas en train de dire que je vais créer le tutoriel !
    Sinon, dans l'idéal, j'aurais bien aimé un tutoriel sur le sujet mais je manque de temps et comme je ne trouve pas de volontaires pour le faire, mais c'est en standby.

    Personnellement, j'ai des application CGI Perl et bosse en simultanée avec PHP et pour jouer avec les SESSION, j'utilise PHP::Session.

    Sinon, pour tes histoires de mot de passe, pourquoi tu n'utilises pas une base de données. Et au pire, un simple crytage md5 suffit non ?

  3. #3
    Membre régulier Avatar de fripette
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    241
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 241
    Points : 71
    Points
    71
    Par défaut
    Effectivement pardon mauvais lien !
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    http://www.developpez.net/forums/d1088207/autres-langages/perl/communaute-perl/contribuez/jouer-sessions-entre-php-perl/
    Je ne te promets rien mais je me jetterai bien dans le tutoriel ou un brouillon de: si tout le monde fait de même tu n'auras plus qu'a faire un puzzle .

    Alors ca marche chez toi ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Personnellement, j'ai des application CGI Perl et bosse en simultanée avec PHP et pour jouer avec les SESSION, j'utilise PHP::Session
    Comment fais tu pour récupérer le mot de passe ds ton scripts PHP ? Ton session_start fonctionne ?


    L'encryption en MD5 mais c'est le après qui bloque : ya des (re)connections à la base donc recuperer le mot de passe et le user_name est vraiment indispensable

  4. #4
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 818
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 818
    Points : 499 183
    Points
    499 183
    Par défaut
    Entre mes prog PHP et cgi, les échanges se font correctement.
    je récupère mes données de sessions (pas de mot de passe) via la méthode get.

  5. #5
    Membre régulier Avatar de fripette
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    241
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 241
    Points : 71
    Points
    71
    Par défaut
    OK tu utilises le get.
    Mais je ne peux pas le faire comme ca a mon avis ! Mon utilisation de PHP::Session est mauvaise ? Mon appel a session_start dans le script PHP n'est pas bonne non plus ?
    Je suis perdue :S

  6. #6
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 818
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 818
    Points : 499 183
    Points
    499 183
    Par défaut
    Avant même de tester Perl, assure toi qu'un fichier de session est bien créé sur ton serveur lorsque tu es sur ta page WEB PHP.

  7. #7
    Membre régulier Avatar de fripette
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    241
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 241
    Points : 71
    Points
    71
    Par défaut
    Tu vas dire que je suis une imbecile mais je ne comprends pas.

    Ma pages web ne cree pas de fichier session, je voudrais qu'elle lise le fichier sess_116162646 qui a ete cree par mon objet PHP::Session place dans le scripts login.cgi .

    Le login se fait par Perl, Php ne fait que reutilise les infos enregistrees par Perl.
    Peut etre me manque-t-il une information pour comprendre tes pistes ? le start_session() en php cree un fichier ?

  8. #8
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 818
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 818
    Points : 499 183
    Points
    499 183
    Par défaut
    Moi je partais du principe que tu avais des pages en PHP avec des sessions et ensuite, tu fais appel à des programmes Perl et souhaite ainsi lire ses sessions.

    Mais j'ai l'impression que toi tu es dans le chemin inverse, c'est ça ?

  9. #9
    Membre régulier Avatar de fripette
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    241
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 241
    Points : 71
    Points
    71
    Par défaut
    Effectivement ! Perl cree la session et je veux recuperer les infos ds un script PHP ( d'ailleurs on a juste un outil qui est gere par du PHP )

  10. #10
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 818
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 818
    Points : 499 183
    Points
    499 183
    Par défaut
    Je n'ai jamais fait dans ce sens là.
    Mais dans ce cas, ton session_start n'a plus de sens car dans PHP ça crée une nouvelle session. Faut surement utiliser une autre méthode PHP (http://php.net/manual/en/ref.session.php)

  11. #11
    Membre régulier Avatar de fripette
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    241
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 241
    Points : 71
    Points
    71
    Par défaut
    Merci Djibril, je cherche avec ta piste et je poste une soluce (enfin si je trouve !)

    J'avais deja trouve cette piste il y a
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    http://www.php.net/manual/en/function.session-set-save-handler.php
    Surtout ds les commentaires de l'article, il y a un exemple parfait .
    Mais je suis peu familiere du langage orientee objet: comment definir la variable private $savePath; dans l'exemple 2 ?

  12. #12
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 818
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 818
    Points : 499 183
    Points
    499 183

Discussions similaires

  1. Réponses: 7
    Dernier message: 29/10/2012, 14h51
  2. [Tomcat]échange de session entre php et java
    Par benwa dans le forum Tomcat et TomEE
    Réponses: 18
    Dernier message: 05/06/2007, 18h01
  3. [Sécurité] Variables de session entre pages
    Par kcizth dans le forum Langage
    Réponses: 4
    Dernier message: 09/01/2006, 12h29
  4. [RegExp] Adapter une regexp Perl vers du Java
    Par GLDavid dans le forum Collection et Stream
    Réponses: 3
    Dernier message: 22/12/2005, 13h40
  5. [VB.NET] Perte de session entre 2 projets
    Par TekP@f dans le forum ASP.NET
    Réponses: 3
    Dernier message: 02/05/2005, 10h12

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