Forum Programmation.perl session en perl

Posté par .
Tags : aucun
0
7
juin
2006
Salut ,

j'ai une autre question cette fois concerne la notion de session en perl
en effet , l'administarteur doit entrer avec un lodin et password
ceci doit être recuperer pendant toute sa manipulationde l'application puisque chaque tache qui va effectuer necessite la login et le mot de pass grace à l'instrution suivante (en perl )
use Cyrus::IMAP::Admin;
my $cyrus = Cyrus::IMAP::Admin->new('localhost');
$cyrus->authenticate('$Mechanism','imap','','$login','0','10000','$password');
$cyrus->nom_de_methode (listing renommage , modifier quota ....)
pour ce la je pense au notion de session en perl (un peu difficile )
dans ma première page je fais ce petit code
#!/usr/bin/perl -w
print "Content-Type: text/html\n\n";
use strict;
use CGI::Session;
use CGI;
use DBI;
use CGI::Carp qw(fatalsToBrowser);
my $cgi = new CGI;
$CGI::DISABLE_UPLOADS = 1; # Disable uploads
$CGI::POST_MAX = 512 * 1024; # limit posts to 512K max

#create a new session
my $session = new CGI::Session(undef, undef, {Directory=>'/tmp'});


#set session to expire in 1 hour
$session->expire("+1h");

my $cyrususer = $cgi->param("Login");
my $cyruspassword =$cgi->param("Password");
#store login and password
$session->param("Login", $cyrususer);
$session->param("Password", $cyruspassword);

#write to disk
$session->flush();
//j'ai testé ici la recuperation des paramètres et ça fonctionne
//////////////////////////////////////////////////////////////////////////////////////////////////
le pb est quand je veux de recuperer ses paramètres à partir d' une autre page qui contient le code suivant au debut
#!/usr/bin/perl -w
print "Content-Type: text/html\n\n";
use strict;
use CGI::Session;
use CGI;
use DBI;
use CGI::Carp qw(fatalsToBrowser);
#create a new CGI object.
my $cgi = new CGI;
$CGI::DISABLE_UPLOADS = 1; # Disable uploads
$CGI::POST_MAX = 512 * 1024; # limit posts to 512K max
#try to retrieve cookie.
my $sid = $cgi->cookie("CGISESSID") || undef;
#create session... If I retrieved a previous session id, reconnect to it.
#if not, create a new session.
my $session = new CGI::Session(undef, $sid, {Directory=>'/tmp'});
print $session->param("Login"); // ici aucun paramètre est retourné
///////////////////////////
svp si vous puvez concentrer dans les codes pour avoir ou est l'erreur . syntaxe est un peu difficile et je ne suis pas encore compétente dans le programmation avec perl !!!!
merci
  • # questions simples

    Posté par (page perso) . Évalué à 0.

    1. quand tu fais my $session = new CGI::Session(undef, $sid, {Directory=>'/tmp'}); as tu une garantie que ton $sid contienne quelque chose ?

    2. as tu verifié que ton $sid contienne bien une information ?

    3. quand tu fais my $session = new CGI::Session(undef, undef, {Directory=>'/tmp'}); as tu une garantie que ton fichier de session est bien créée ?

    4. as tu verifié que ton fichier de session est bien créé dans /tmp ?

    6. ne trouves tu pas étrange que la creation de ta session tu ne spécifie aucun cookie de stockage et que lorsque tu recupere ta session tu en spécifie un ?

    7. est ce normal de procéder ainsi ?

    8. n'est ce pas l'origine de ton bug ?

    9. as tu verifié la documentation ?


    regarde du coté de la doc de CGI::SESSION , elle est sur internet et sur ton disque dur. la version en ligne est : http://search.cpan.org/~markstos/CGI-Session-4.13/lib/CGI/Se(...) .

    Un tutoriel existe à l'adresse http://search.cpan.org/~markstos/CGI-Session-4.13/lib/CGI/Se(...) .

Suivre le flux des commentaires

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.