Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1546 connectés 

  FORUM HardWare.fr
  Programmation
  Perl

  [PERL] problème avec variable de session PHP

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[PERL] problème avec variable de session PHP

n°2137169
ingeston
Posté le 17-04-2012 à 15:59:12  profilanswer
 

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 :
  1. #!/usr/bin/perl
  2. use strict;
  3. use PHP::Session;
  4. use CGI;
  5. use DateTime;
  6. use MIME::Lite;
  7. my $cgi = new CGI;
  8. my $id_session = $cgi->param('id_session');
  9. my $session = PHP::Session->new($id_session, { create => 1 });
  10. my $code = $session->get('code');
  11. if( $code eq $cgi->param('code') )
  12. {
  13. ..........
  14. }
  15. else{
  16. if ( $lang eq "en" )
  17. {
  18.  print 'work in progress...';
  19.                 print "<meta http-equiv=\"refresh\" content=\"0; url=/resultat_en.php?r=4\" />";
  20. }
  21. else
  22. {
  23.  print 'traitement en cours...';
  24.  print "<meta http-equiv=\"refresh\" content=\"0; url=/resultat.php?r=4\" />";
  25. }
  26. }


 
Et voici ce qu'il y a dans le formulaire PHP :

Code :
  1. <?php
  2.     session_start();
  3. //..............(création de la variable $passe)..............
  4.     $_SESSION['code']=$passe;
  5.     $id_session = session_id();
  6. ?>


 
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 :
  1. 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  
[B]perldoc perlocal[/B] :

Code :
  1. Fri Apr 13 10:16:35 2012: "Module" UNIVERSAL::require
  2.        ·   "installed into: /usr/local/share/perl/5.10.1"
  3.        ·   "LINKTYPE: dynamic"
  4.        ·   "VERSION: 0.12"
  5.        ·   "EXE_FILES: "
  6.    Fri Apr 13 10:17:13 2012: "Module" PHP::Session
  7.        ·   "installed into: /usr/local/share/perl/5.10.1"
  8.        ·   "LINKTYPE: dynamic"
  9.        ·   "VERSION: 0.26"
  10.        ·   "EXE_FILES: "
  11.    Mon Apr 16 15:14:00 2012: "Module" PHP::Session
  12.        ·   "installed into: /usr/local/share/perl/5.10.1"
  13.        ·   "LINKTYPE: dynamic"
  14.        ·   "VERSION: 0.27"
  15.        ·   "EXE_FILES: "
  16.    Mon Apr 16 15:14:42 2012: "Module" Test::Simple
  17.        ·   "installed into: /usr/local/share/perl/5.10.1"
  18.        ·   "LINKTYPE: dynamic"
  19.        ·   "VERSION: 0.98"
  20.        ·   "EXE_FILES: "
  21.    Mon Apr 16 15:14:58 2012: "Module" FCGI
  22.        ·   "installed into: /usr/local/share/perl/5.10.1"
  23.        ·   "LINKTYPE: dynamic"
  24.        ·   "VERSION: 0.74"
  25.        ·   "EXE_FILES: "
  26.    Mon Apr 16 15:15:03 2012: "Module" CGI
  27.        ·   "installed into: /usr/local/share/perl/5.10.1"
  28.        ·   "LINKTYPE: dynamic"
  29.        ·   "VERSION: 3.59"
  30.    Mon Apr 16 15:15:44 2012: "Module" MIME::Lite
  31.        ·   "installed into: /usr/local/share/perl/5.10.1"
  32.        ·   "LINKTYPE: dynamic"
  33.        ·   "VERSION: 3.028"
  34.        ·   "EXE_FILES: "
  35.    Mon Apr 16 15:25:22 2012: "Module" HTML::Template
  36.        ·   "installed into: /usr/local/share/perl/5.10.1"
  37.        ·   "LINKTYPE: dynamic"
  38.        ·   "VERSION: 2.91"
  39.        ·   "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 !!:calim2:

mood
Publicité
Posté le 17-04-2012 à 15:59:12  profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Perl

  [PERL] problème avec variable de session PHP

 

Sujets relatifs
Nuage de mots clés en PHP[PHP] SPAN plier/déplier info dans pages PHP
PHP et ArrayAPPLICATION PHP/SQL
Récuperer plusieur $_POST dans une seul variable possible ??problème de passage de C au C++
Probleme de champProblème : tokenizer.nextToken
Problème de format d'axeProblème range paramètré
Plus de sujets relatifs à : [PERL] problème avec variable de session PHP


Copyright © 1997-2018 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR