[session cgi] problème d'expiration de session
:oops: :oops: Bonjour et désolé :oops: :oops:
Je suis désolé, vraiment de poster plusieurs fois sur le même sujet mais ce module cgi::session est dur utiliser pour moi.
Voilà mon problème:
Lorsque l'utilisateur se connecte, une session est crée (voir code ci-dessous):
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
|
if ($Res eq $user && $Res !="")
{
#Création de la session.
$session=new CGI::Session("driver:File",undef,{Directory=>'../sessions'});
$session->expire(3600);
$id=$session->id();
$session->param("moi", "guillaume");
print "<BR>id: $id<BR>";
print "<BR><a href='./framejob.pl?CGISESSID=$id'>Accèder</a><BR>";
}
else
{
print "<SCRIPT>document.getElementById('statut').innerHTML='<font color=ff0000>EAN non valid</font>'</SCRIPT>";
} |
Je n'obtiens pas l'apparition de mon lien qui permet d'accèder à la prochaine page (j'ai mis ça juste pour debugger et vérifier les différentes étapes).
J'obtiens bien un sid.
Mais j'ai une erreur qui m'empêche de continuer:
Code:
1 2
|
[Fri Jun 24 10:27:13 2005] [error] [client 127.0.0.1] Can't locate auto/CGI/Session/File/expire.al in @INC (@INC contains: c:/Perl/lib c:/Perl/site/lib .) at c:\\PROGRA~1\\EASYPH~1\\test\\cgi-bin\\login.pl line 66\n |
Lorsque j'enlève dans mon script la ligne:
Code:
1 2
|
$session->expire(3600); #(je supprime cette ligne) |
alors j'obtiens l'apparition de mon lien et lorsque je clique dessus j'arrive sur une page qui m'affiche bien le même sid mais avec l'erreur:
Code:
1 2
|
[Fri Jun 24 10:44:16 2005] [error] [client 127.0.0.1] Can't locate auto/CGI/Session/File/expire.al in @INC (@INC contains: c:/Perl/lib c:/Perl/site/lib .) at c:/Perl/site/lib/CGI/session.pm line 258\n |
Le code de la page chargée:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
|
#!c:\perl\bin\perl.exe
use CGI::session;
use CGI;
$cgi=new CGI;
print "Content-type:text/html\n\n";
$sid= $cgi->param("CGISESSID")||undef;
print "<BR>SID: $sid<BR>";
$session=new CGI::Session("driver:File",$sid,{Directory=>'../sessions'});
$id=$session->id();
print "id: $id<BR>";
$nom=$session->param("moi");
print "Nom: $nom\n";
print "<HTML>";
print "<FRAMESET ROWS='25,75' FRAMEBORDER=No BORDER=0>";
print "<FRAME MarginWidth=20 Marginheight=30 frameborder='no' scrolling='no' SRC='./cgi-bin/JobMenu.pl' NAME='JobMenu'>";
print "<FRAME SRC='./cgi-bin/job.pl' NAME='Job' Marginwidth=20 Marginheight=0 frameborder='no' xscrolling='no'>";
print "</FRAMESET>";
print "</HTML>\n"; |
Sur cette page j'affiche bien le même sid mais c'est tout, une page blanche après.
Voilà mon problème :cry: :cry:
J'ai désinstallé et réinstallé le module cgi::session (version 3.95)
l'erreur me dit qu'il manque le fichier expire.al (qui est présent pourtant dans le répertoire C:\Perl\site\lib\auto\CGI\Session\
Lorsque je copie se fichier dans C:\Perl\site\lib\auto\CGI\Session\File, mon navigateur "tourne dan sle vide" et perl prend 100% des ressources.
J'espère avoir bien expliqué mon problème.
Encore une fois, je suis désolé de reposter sur les sessions.
Bonne journée !