Diskussion zum Addon: Addon-Gerüst: Nach Sessionende weiterleitung zum Login.
So da mich es genervt hat das bei Addons die man entwickelt hat eine Fehlermeldung kommt wenn die Session vorbei ist habe ich ein bisschen gespielt und nun kommt bei mir auch der Login.
Diese Erfahrung teile ich natürlich gerne mit euch
Code
#!/usr/local/bin/perl -w
####
#### PD-Admin Add-On: Gerüst für Weiterleitung
#### Michael 9/2005
####
use CGI ':standard';
use DBI;
use strict;
use vars qw($dsn $user $password $color_scheme $color_scheme_administrator);
do "/opt/pdadmin/etc/pdadmin.conf" or die "Can't read configuration: $!";
###
### Variablen Deklarierung
###
my $html_data;
my $Color = 'blue';
my $rest;
my $kill_time='180';
if (defined $color_scheme and length $color_scheme)
{$Color = $color_scheme;}
elsif (defined $color_scheme_administrator and length $color_scheme_administrator )
{$Color = $color_scheme_administrator};
####
#### Korrekte Session ueberpruefen
####
unless (defined $ENV{REQUEST_URI}) {die "no request url available!"};
$ENV{REQUEST_URI} =~ m/\S*\/(\w*)\/dein_addon.cgi$/;
my $SessionID = $1;
my $dbh = DBI->connect($dsn,$user,$password) or die "can't connect!";
my $query = "select time from sessions where session='$SessionID' limit 1";
my $sth = $dbh->prepare($query) or die "cannot prepare query '$query'";
my $rv = $sth->execute or die "cannot execute query '$query'";
my $myTime = $sth->fetchrow;
$sth->finish();
$dbh->disconnect();
$time = time;
$rest = $time - $myTime;
if ($rest >= $kill_time) {
$html_data = `cat /opt/pdadmin/www/administrator/html/login.failed.html`;
my $dbh = DBI->connect($dsn,$user,$password) or die "can't connect!";
my $query = "DELETE FROM sessions where session='$SessionID' LIMIT 1";
my $sth = $dbh->prepare($query) or die "cannot prepare query '$query'";
my $rv = $sth->execute or die "cannot execute query '$query'";
$sth->finish();
$dbh->disconnect();
} else {
###
### Update der Session
###
my $dbh = DBI->connect($dsn,$user,$password) or die "can't connect!";
my $query = "Update sessions set time ='$time' where session='$SessionID'";
my $sth = $dbh->prepare($query) or die "cannot prepare query '$query'";
my $rv = $sth->execute or die "cannot execute query '$query'";
$sth->finish;
$dbh->disconnect();
$html_data = `cat deine Normale Html Vorlage`;
#### Sowie der rest deines Scriptes ####
}
$html_data =~ s/\$\$color_scheme/$Color/g;
print header;
print $html_data;
exit
Alles anzeigen
So nun will ich nen Keks :lol:.
Und Morgen lernt unser CGI Script 2 Sprachen zu Sprechen (wenn ich es bis dahin schaffe)
[Edit]
So nun wird überprüft ob 3 minuten vergangen sind :).
Mit $kill_time kann man die Zeit weiter hochschrauben zur zeit wird nach 3 Minuten die Session beendet.
Ach ja natürlich wird die abgelaufende Session gelöscht :).