Leser: 1
3 Einträge, 1 Seite |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
#!/usr/bin/perl
use strict;
use warnings;
use lib qw(../adbook/);
use CGI;
use DBI;
use CGI::Session;
use CGI::Carp qw/fatalsToBrowser warningsToBrowser/;
use MyAdBookManager;
use HTML::Template;
# Benötigte Variablen initialisieren und definieren
my $session_dsn = "dbi:mysql:database=adbook_sessions;host=localhost;",
my $session_user = "xxxxxxxxxxxxxx";
my $session_pass = "xxxxxxxxxxxxxx";
my $sid = "SID";
# Benötigte Objekte erstellen
my $dbh = DBI->connect($session_dsn,$session_user,$session_pass,{PrintError=>0,RaiseError=>0})
or die DBI::errstr();
my $adbook = MyAdBookManager->new();
my $session = CGI::Session->load();
# Session verlängern falls noch nicht abgelaufen
unless ($session->is_expired()) { # Session abgelaufen oder existiert nicht
$session->new("driver:MySQL",$sid,{Handle=>$dbh});
$session->expire("+30m");# should be 3m for debugging and testing
}
my $userdn = $session->param("userdn") || CGI::param("userdn") || '';
my $passwd = $session->param("passwd") || CGI::param("passwd") || '';
my $authdn = $adbook->Auth($userdn,$passwd);
if (lc($authdn) eq lc($userdn)) {
# Wenn LDAP Authentifizierung erfolgreich Credentials in Session speichern ...
$session->param("userdn",$userdn);
$session->param("passwd",$passwd);
# ... und gewünschte Aktion vornehmen
$adbook->doAction(CGI::param("action") || '',CGI::Vars());
}
else {
# Ansonsten Login vorbereiten
$adbook->doAction("show_logon");
}
# Passendes Template laden und mit den passenden Werten ausfüllen
my $tmpl = HTML::Template->new(filename=>$adbook->requiredTemplate(),associate=>$session) or die $!;
for my $param ($adbook->Fields()) {
$tmpl->param(%$param);
}
# Und Bereit zur Ausgabe
print $session->header();
warningsToBrowser(1); # only for debugging
print $tmpl->output();
exit;
Can't locate auto/CGI/Session/load.al in @INC (@INC contains: ../adbook/ /etc/perl /usr/lib/perl5/site_perl/5.8.6/i686-linux /usr/lib/perl5/site_perl/5.8.6 /usr/lib/perl5/site_perl/5.8.5 /usr/lib/perl5/site_perl/5.8.5/i686-linux /usr/lib/perl5/site_perl /usr/lib/perl5/vendor_perl/5.8.6/i686-linux /usr/lib/perl5/vendor_perl/5.8.6 /usr/lib/perl5/vendor_perl/5.8.5 /usr/lib/perl5/vendor_perl/5.8.5/i686-linux /usr/lib/perl5/vendor_perl /usr/lib/perl5/5.8.6/i686-linux /usr/lib/perl5/5.8.6 /usr/local/lib/site_perl .) at adbookmanager.pl line 24
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#!/usr/bin/perl
use strict;
use warnings;
use CGI::Session;
use CGI;
use CGI::Carp qw/fatalsToBrowser warningsToBrowser/;
use HTML::Template;
my $session = CGI::Session->load();
$session->new("SID") unless $session->is_expired();
my $template = '../login.html';
$session->expire("+3m");
CGI::param("user") and $session->param("user",CGI::param("user"));
$session->param("~is_logged_in",1) if CGI::param("user") ne "" && CGI::param("pass") ne "";
if ($session->param("~is_logged_in")) {
$template="../success.html";
}
else {
$session->delete();
}
my $tmpl = HTML::Template->new(filename => $template,associate=>$session) or die $!;
print $session->header();
warningsToBrowser(1);
print $tmpl->output();
exit;
3 Einträge, 1 Seite |