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 :

Passer des variables de session de php en perl


Sujet :

Web Perl

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 7
    Par défaut Passer des variables de session de php en perl
    Bonsoir à tous,

    J'ai un petit problème pour passer des variables de session d'un script php vers un script perl.

    Voici un extrait de mon script qui ne fonctionne pas.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    use CGI;
    my $req=new CGI; 
    my $nom=$req->param($_SESSION['client']['nom']); 
    my $prenom=$req->param($_SESSION['client']['prenom']);
    Avez-vous la solution à mon problème ?

    Merci par avance pour vos réponses.

  2. #2
    Responsable Perl et Outils

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

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 822
    Par défaut
    Il faut utiliser le module CGI::Session. Je l'ai déjà fait il y a quelques temps. Cela date un peu. Si je retrouve mes codes, je t'en dirais plus.

  3. #3
    Membre Expert
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    1 874
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 874
    Par défaut
    $_SESSION est une variable php qui se réfère à une session php, il n'est pas possible d'y accéder directement en Perl.
    Si le script Perl est lancé par un script php, il est par contre possible de lui passer des variables dans l'environnement, avec la fonction setenv(), ou bien en arguments.

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 7
    Par défaut
    Merci Djibril et Estofilo d'avoir répondu à ma question.

    J'ai essaye avec les sessions, sans succès.

    Je me suis donc résolu de passer par variable url.

  5. #5
    Responsable Perl et Outils

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

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 822
    Par défaut
    Citation Envoyé par estofilo Voir le message
    $_SESSION est une variable php qui se réfère à une session php, il n'est pas possible d'y accéder directement en Perl.
    Si le script Perl est lancé par un script php, il est par contre possible de lui passer des variables dans l'environnement, avec la fonction setenv(), ou bien en arguments.
    Il est tout à fait possible entre Perl et PHP de communiquer via les variables de sessions .

    Citation Envoyé par toufika13 Voir le message
    Merci Djibril et Estofilo d'avoir répondu à ma question.

    J'ai essaye avec les sessions, sans succès.

    Je me suis donc résolu de passer par variable url.
    Désolé mais en fait, je t'ai mis sur le piste d'un module qui fonctionne bien, mais ne correspondait pas à tes attentes.

    si tu as besoin d'échanger des variables de sessions entre PHP et Perl CGI, il existe le module PHP::Session qui fonctionne très bien.

    Voici un exemple de code fonctionnant.

    Code PHP :
    Code php : 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
    <?php
    /*==============================================================================
    * But    : Passage des sessions PHP à Perl CGI
    ==============================================================================*/
    session_start();
     
    // Création de 2 variables de session
    $_SESSION["login"] = "toufika13";
    $_SESSION["site"] = "dev.com";
     
     
    ?>
     
      <form name="formulaire" method="POST" action="/cgi-bin/session/phpsession.cgi">
          <input type='text' name='prenom' value='jean'/> 
          <input type='submit' name='valider' value='test session'/> 
      </form>

    Script phpsession.cgi qui doit être dans le répertoire cgi-bin/session (tu peux le changer si tu veux).

    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
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    #!C:\Perl\bin\perl.exe
    #===========================
    # Lire les sessions PHP
    #===========================
    use strict;
    use warnings;
    use PHP::Session;
     
    use CGI;
     
    my $session_name = 'PHPSESSID';    # nom des sessions
    my $cgi          = new CGI;
     
    my $cookie = $cgi->cookie( -name => $session_name, );
     
    print $cgi->header();
    print $cgi->start_html( -title => 'Teste session php', );
    print "id session : $cookie<br>\n";
     
    if ($cookie) {
      my $session = PHP::Session->new(
        $cookie,
        { save_path => "C:/Documents and Settings/user/Local Settings/Temp",
          #auto_save => 1,
        }
      );
     
      # Lecture du contenu des sessions PHP
      print "Login : ",       $session->get('login'),       "<br>\n";
      print "Site : ",        $session->get('site'),        "<br>\n";
      print "Identifiant : ", $session->get('identifiant'), "<br>\n";
      print "Type : ",        $session->get('type'),        "<br>\n";
    }
    else {
      print "Aucune session de trouv&eacute;";
    }
    Ta page CGI affichera les variables de session.
    Si tu as un souci n'hésite pas.

Discussions similaires

  1. Passer des variables de flash vers php?
    Par Dev@lone dans le forum Flash
    Réponses: 1
    Dernier message: 12/03/2008, 09h43
  2. Réponses: 3
    Dernier message: 25/02/2008, 09h14
  3. [WebForms][1.1]Récupérer des variables de session php en asp
    Par jwalter dans le forum Général Dotnet
    Réponses: 3
    Dernier message: 26/11/2006, 14h49
  4. Réponses: 11
    Dernier message: 09/12/2005, 14h59
  5. Réponses: 3
    Dernier message: 03/02/2005, 13h07

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