OVH Cloud OVH Cloud

session sous CGI::Session::File

3 réponses
Avatar
Mickëy
Bonjour,

Je cherche a utiliser CGI::Session::File sans cookie,
mais je n'arrive pas a recuperer ma session dans le second script.

Quelqu'un pourrais il m'éclerer?
merci par avance.

--
Mickëy

3 réponses

Avatar
Mickëy
voici ce que j'ai mais ca ne fonctionne pas
pourquoi? et que dois-je faire pour que ca fonctionne?
S.V.P. :,o(

#!/usr/bin/perl
use CGI;
use CGI::Session;

my $session;
my $sid=$query->param("sessionid");
print "prog ".$sid." <br>";
if($sid eq ""){
print "if<br>";
$session = new CGI::Session("driver:File",
undef,
{Directory=>"/tmp"});
$sid = $session->id();
connect_html();
#$session->delete();
}else{
print "else<br>";
$session = new CGI::Session("driver:File",
$sid,
{Directory=>"/tmp"});
ask();
$session->delete();
}
#***************
#***************
sub connect_html{
print '
<FORM method=POST ACTION="">
<input type=hidden name="sessionid" value='.$sid.'>
Username: <INPUT TYPE="text" NAME="username"><BR>
Password: <INPUT TYPE="password" NAME="password"><BR>
<BR>
<INPUT TYPE="submit" VALUE="Log in">
</FORM>';
}
#***************
#***************
sub ask{
print "ID_SESSION=".$sid."<br>";
}

--
Mickëy



Mickëy wrote:
Bonjour,

Je cherche a utiliser CGI::Session::File sans cookie,
mais je n'arrive pas a recuperer ma session dans le second script.

Quelqu'un pourrais il m'éclerer?
merci par avance.

--
Mickëy



Avatar
Adrien Constant
my $sid=$query->param("sessionid");


$query n'est pas définit à ce point, donc déjà
my $query = new CGI;

Mickëy wrote:
voici ce que j'ai mais ca ne fonctionne pas
pourquoi? et que dois-je faire pour que ca fonctionne?
S.V.P. :,o(

#!/usr/bin/perl
use CGI;
use CGI::Session;

my $session;
my $sid=$query->param("sessionid");
print "prog ".$sid." <br>";
if($sid eq ""){
print "if<br>";
$session = new CGI::Session("driver:File",
undef,
{Directory=>"/tmp"});
$sid = $session->id();
connect_html();
#$session->delete();
}else{
print "else<br>";
$session = new CGI::Session("driver:File",
$sid,
{Directory=>"/tmp"});
ask();
$session->delete();
}
#***************
#***************
sub connect_html{
print '
<FORM method=POST ACTION="">
<input type=hidden name="sessionid" value='.$sid.'>
Username: <INPUT TYPE="text" NAME="username"><BR>
Password: <INPUT TYPE="password" NAME="password"><BR>
<BR>
<INPUT TYPE="submit" VALUE="Log in">
</FORM>';
}
#***************
#***************
sub ask{
print "ID_SESSION=".$sid."<br>";
}



Avatar
Adrien Constant
Après avoir un peu plus testé...

use strict;
use warnings;
use CGI;
use CGI::Session;

my $query = new CGI();
print $query->header();
my $session = new CGI::Session("driver:File",undef,{'Directory' => '/tmp'});
my $SID = $session->id();
print "$SIDn";

et ça marche, sinon vérifiez sue CGI::Session est bien installé.

Mickëy wrote:
voici ce que j'ai mais ca ne fonctionne pas
pourquoi? et que dois-je faire pour que ca fonctionne?
S.V.P. :,o(

#!/usr/bin/perl
use CGI;
use CGI::Session;

my $session;
my $sid=$query->param("sessionid");
print "prog ".$sid." <br>";
if($sid eq ""){
print "if<br>";
$session = new CGI::Session("driver:File",
undef,
{Directory=>"/tmp"});
$sid = $session->id();
connect_html();
#$session->delete();
}else{
print "else<br>";
$session = new CGI::Session("driver:File",
$sid,
{Directory=>"/tmp"});
ask();
$session->delete();
}
#***************
#***************
sub connect_html{
print '
<FORM method=POST ACTION="">
<input type=hidden name="sessionid" value='.$sid.'>
Username: <INPUT TYPE="text" NAME="username"><BR>
Password: <INPUT TYPE="password" NAME="password"><BR>
<BR>
<INPUT TYPE="submit" VALUE="Log in">
</FORM>';
}
#***************
#***************
sub ask{
print "ID_SESSION=".$sid."<br>";
}