ugrás a tartalomhoz

perl session beállítás

lorko · 2007. Nov. 6. (K), 02.15
sziasztok,

némi gondom támadt session témában.

ez lenne a cpan-on
$session->expire("2h");                # kétóra után lejár
$session->expire(0);                   # nem járle
$session->expire("logged-in", "10m");  # ha nincs aktivitás 10 percig akkor lejár
hogy lehet azt megadni, hogy :
kétóra mulva mindenképp lejárjon,
ha 10 percig nincs aktivitás akkor megintcsak járjon le?

nekem a kétóramulva lejárást nem akarja elkövetni.

előre is köszönöm.
 
1

session nem törlődik

lorko · 2008. Feb. 22. (P), 18.12
szisztok,

újra session problémám van. :)

valamiért nem törlődnek a sesion file-ok, a tmp-ből.

vajon miért?

kód:
login.pl:
#!/usr/bin/perl     
# login.pl   
use CGI;
use CGI::Carp qw/fatalsToBrowser warningsToBrowser/;
use CGI::Session ( '-ip_match' );

my $q = new CGI;
my $usr = $q->param('usr');
my $pwd = $q->param('pwd');


my $loginform = '
	<form action="" method="post">
		Username: <input type="text" name="usr" />  
		Password: <input type="password" name="pwd" />   
		<input type="submit" />           
		</form>   
';


if ($usr ne '') {
   if(&validateUser($usr,$pwd)){
		$session = new CGI::Session();
		$session->expire('+1m');
		print $session->header(-location=>'index.pl');
	}
	else {
		print $q->header(-type=>"text/html",-location=>"login.pl");
	}
}
elsif ($q->param('action') eq 'logout') {
	$session = CGI::Session->load() or die CGI::Session->errstr;       
	$session->delete();
	print $session->header(-location=>'login.pl');   
}
else {
	print $q->header(-charset => 'utf-8', -type=>"text/html");
	print $q->start_html(
		-title   => 'Login',
	);
	print $loginform;
	print $q->end_html();
};

sub validateUser {
	if ($usr eq "demo" and $pwd eq "demo"){
	return 'true';
	};
}
index.pl
#!/usr/bin/perl     
# index.pl   
use CGI;
use CGI::Carp qw/fatalsToBrowser warningsToBrowser/;
use CGI::Session ( '-ip_match' );

my $session = CGI::Session->load();
my $q = new CGI;

if($session->is_expired){
  print $q->header(-cache_control=>"no-cache, no-store, must-revalidate");
  print "Your has session expired. Please login again.";
  print "<br/><a href='login.pl>Login</a>";
}
elsif($session->is_empty){
  print $q->header(-cache_control=>"no-cache, no-store, must-revalidate");
  print "You have not logged in";
}
else{
  print $q->header(-cache_control=>"no-cache, no-store, must-revalidate");
  print "<h2>Welcome";
  print "<a href='login.pl?action=logout'>Logout";
}
tehát is_expired, és is_empty esetben, ne törlődik a file, ha oda teszem hogy:
$session->delete();
akkor sem.

segítségeteket előre is köszönöm.