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

Modules Perl Discussion :

[PERL] problème avec une variable de session PHP


Sujet :

Modules Perl

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2012
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2012
    Messages : 2
    Points : 1
    Points
    1
    Par défaut [PERL] problème avec une variable de session PHP
    Bonjour à tous
    Je suis nouveau et je viens quémander votre aide =)
    je suis sur un projet de Stage de migration de serveur et je bute sur un truc depuis plusieurs jours. Je vous fais le topo :

    On a un serveur web en prod (qui marche!!) sur lequel il a un formulaire PHP, c'est un script PERL qui récupère les données du formulaire et appel une nouvelle page PHP en fonction des données remplies.

    Mon projet est de migrer ce serveur sur un nouveau système d'exploitation, je le passe d'un Gentoo à une Debian. Jusque là tout va bien.

    Le formulaire PHP contient un captcha dont la chaine de caractère est stockée dans un variable de session :
    $_SESSION['code']

    Le script PERL doit récupérer cette variable, c'est qu'est le PROBLEME! il ne récupère qu'une chaine de caractère vide!!

    voici le code du script 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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
     
    #!/usr/bin/perl
    use strict;
    use PHP::Session;
    use CGI;
    use DateTime;
    use MIME::Lite;
    my $cgi = new CGI;
     
    my $id_session = $cgi->param('id_session');
     
    my $session = PHP::Session->new($id_session, { create => 1 });
     
    my $code = $session->get('code');
     
    if( $code eq $cgi->param('code') )
    {
    ..........
    }
    else{
    	if ( $lang eq "en" )
    	{
    		print 'work in progress...';
                    print "<meta http-equiv=\"refresh\" content=\"0; url=/resultat_en.php?r=4\" />";
    	}
    	else
    	{
    		print 'traitement en cours...';
    		print "<meta http-equiv=\"refresh\" content=\"0; url=/resultat.php?r=4\" />";
    	}
    }
    Et voici ce qu'il y a dans le formulaire PHP :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <?php
        session_start();
    //..............(création de la variable $passe)..............
        $_SESSION['code']=$passe;
        $id_session = session_id();
    ?>
    Après plusieurs test j'ai bien identifié que la chaine de caractère récupérée par le script PERL dans la variable $code était vide, car je satisfait la condition :
    if( $code eq $cgi->param('code') )
    que lorsque je ne rentre aucune donnée dans le champ code du formulaire.

    J'ai aussi vérifié, la variable de session $_SESSION['code'] est bien remplie, elle retourne la bonne chaine de caractère (j'ai fait le test pour différentes page PHP).


    étant donné qu'il n'y a pas le problème sur notre serveur en production je suis quasiment sur que ça ne vient pas du code mais plutôt d'un module que j'aurais mal installé sur la nouvelle machine?..

    j'ai pourtant bien installé les modules PERL de la façon suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    apt-get install rrdtool libdatetime-perl libmime-lite-perl libdbd-mysql-perl libhtml-template-expr-perl libcgi-session-perl libclass-dbi-mysql-perl -y
    J'ai même utilisé les modules CPAN, et voilà ce que me donne la commande
    perldoc perlocal :
    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
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
     
       Fri Apr 13 10:16:35 2012: "Module" UNIVERSAL::require
           ·   "installed into: /usr/local/share/perl/5.10.1"
     
           ·   "LINKTYPE: dynamic"
     
           ·   "VERSION: 0.12"
     
           ·   "EXE_FILES: "
     
       Fri Apr 13 10:17:13 2012: "Module" PHP::Session
           ·   "installed into: /usr/local/share/perl/5.10.1"
     
           ·   "LINKTYPE: dynamic"
     
           ·   "VERSION: 0.26"
     
           ·   "EXE_FILES: "
     
       Mon Apr 16 15:14:00 2012: "Module" PHP::Session
           ·   "installed into: /usr/local/share/perl/5.10.1"
     
           ·   "LINKTYPE: dynamic"
     
           ·   "VERSION: 0.27"
     
           ·   "EXE_FILES: "
     
       Mon Apr 16 15:14:42 2012: "Module" Test::Simple
           ·   "installed into: /usr/local/share/perl/5.10.1"
     
           ·   "LINKTYPE: dynamic"
     
           ·   "VERSION: 0.98"
     
           ·   "EXE_FILES: "
     
       Mon Apr 16 15:14:58 2012: "Module" FCGI
           ·   "installed into: /usr/local/share/perl/5.10.1"
     
           ·   "LINKTYPE: dynamic"
     
           ·   "VERSION: 0.74"
     
           ·   "EXE_FILES: "
     
       Mon Apr 16 15:15:03 2012: "Module" CGI
           ·   "installed into: /usr/local/share/perl/5.10.1"
     
           ·   "LINKTYPE: dynamic"
     
           ·   "VERSION: 3.59"
     
       Mon Apr 16 15:15:44 2012: "Module" MIME::Lite
           ·   "installed into: /usr/local/share/perl/5.10.1"
     
           ·   "LINKTYPE: dynamic"
     
           ·   "VERSION: 3.028"
     
           ·   "EXE_FILES: "
     
       Mon Apr 16 15:25:22 2012: "Module" HTML::Template
           ·   "installed into: /usr/local/share/perl/5.10.1"
     
           ·   "LINKTYPE: dynamic"
     
           ·   "VERSION: 2.91"
     
           ·   "EXE_FILES: "
    Est-ce que vous savez de quoi d'autre ça pourrait venir? sachant encore une fois que les mêmes pages fonctionnent en prod..
    Je vous avoue que je suis à cours d'idées, j'ai vraiment besoin de vous!! HELP !!

  2. #2
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2012
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2012
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    Alors deux, trois nouveautés :
    j'ai modifié une ligne de mon script PERL, j'ai viré le {create => 1} voilà ce que ça me donne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    my $session = PHP::Session->new($id_session, );
    et maintenant le script PERL me sort une erreur quand il essaye de lire la variable dans le fichier de session sess_pliedbvtk........ (qui se trouve dans le répertoire /tmp), voilà ce qu'il me dit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Software error:
     
    weird data: 8l6p844q9aqUpyIMlcHuw86ru3MgDfThYKVhoIw_Qfdc6pUe76I5eIaAXfUV2vc8 at /usr/local/share/perl/5.10.1/PHP/Session/Serializer/PHP.pm line 222
     
    For help, please send mail to the webmaster (root@XXXXX.fr), giving this error message and the time and date of the error.

    Il y a donc du mieux car au moins il essaye de lire le fichier mais c'est pas encore ça!
    j'ai mis tous mes modules PERL à jour.. de quoi d'autre ça pourrait venir?

    Merci d'avance!

Discussions similaires

  1. Réponses: 2
    Dernier message: 20/12/2011, 21h37
  2. [PHP 5.0] Problème avec une variable tableau dans une session
    Par diblasio dans le forum Langage
    Réponses: 5
    Dernier message: 23/08/2010, 09h59
  3. [PHP-JS] problème avec une variable
    Par schats dans le forum Langage
    Réponses: 14
    Dernier message: 15/04/2007, 13h54
  4. [Sécurité] Problème avec des variables de session
    Par zoom61 dans le forum Langage
    Réponses: 28
    Dernier message: 18/08/2006, 21h05
  5. Réponses: 8
    Dernier message: 13/07/2006, 10h04

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