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:
58:
59:
|
#!/usr/local/bin/perl
# Den Pfad für Addonbibliotheken (z.B. pdadmin_session) setzen
use lib '/opt/pdadmin/addons/libs';
# Bei schlampiger Programmierung drauf hinweisen
use warnings;
use strict;
# Die Module CGI zum Auslesen von übergebenen Parametern und das Datenbankmodul einbinden.
use CGI::Carp qw(fatalsToBrowser warningsToBrowser);
use CGI ':standard';
use DBI;
use pdadmin_session;
my $form = CGI->new;
# Den CGI-Header ausgeben
# Dabei werden wir Proxies und Browser anweisen, diese Seite nicht zu cachen, damit
# die angezeigten Daten immer direkt vom Skript stammen
print CGI::header(-Expires=>'now', -Cache_control => 'no-cache', -pragma => 'no-cache');
# Hier geben wir das anzuzeigende HTML aus.
# q| interpretiert alles bis zum nächsten |, dadurch kann man auch Zeichen wie ' oder " bedenkenlos verwenden.
print q|<!DOCTYPE html>
<html>
<head>
<title>pd-admin Addon</title>
<meta http-equiv="Content-Type" content="text/html; charset="utf-8">
<link rel="stylesheet" href="/css/styles.css" type="text/css">
</head>
<body><h1>Addontitel</h1><div class="mainheader">Tabellentitel</div><div style="width: 550px; border: 1px solid">|;
# pdadmin-Konfiguration einlesen
use vars qw($dsn $user $password);
do '/opt/pdadmin/etc/pdadmin.conf' || die "Can't read configuration (pdadmin.conf): $!";
# Zur Datenbank verbinden, wenn das nicht klappt mit einer Fehlermeldung abbrechen
my $dbh = DBI->connect($dsn, $user, $password) || die "can't connect, errmsg = $DBI::errstr";
# Wenn im Skript die() aufgerufen wird, wird die hier definierte Methode aufgerufen, dort schließen wir dann eventuelle Datenbankverbindungen
$SIG{__DIE__} = sub { $dbh->disconnect if $dbh; die @_; };
#Schauen, ob der User eingeloggt ist.
my $session = pdadmin_session->new($dbh);
if($session->session()){
print 'Hallo Welt.<br />Noch ein Formular: <form action="" method="post"><input name="testfeld" value="',($form->param('testfeld') or 'Testfeld'), '" />';
print '<input type="submit" value="Abschicken" /></form>';
#Wenn der Benutzer das Feld ausgefüllt hat, geben wir den übergebenen Wert an ihn zurück.
print 'Sie schrieben: ',$form->param('testfeld') if(defined $form->param('testfeld'));
}
else {
print 'Die Session ist abgelaufen. Bitte loggen sie sich auf der <a href="/administrator/">Loginseite</a> neu ein.';
}
print q{</div></body></html>};
# Datenbankverbindung schließen
$dbh->disconnect();
exit(0); |