[
Thread Prev][
Thread Next] >
Date Index
>
Thread Index
CGI Vacation Script
Stefan Bauer -
Thu Sep 20 18:02:46 2007
Hallo Liste,
ich versuche vergeblich, seit 2 Tagen mein CGI-Vacation Script ans Laufe
zu bekommen.
Der Benutzer soll nach einer .htaccess Authentifizierung seinen
Abwesenheitstext definieren und in den Urlaub gehen. Der hinterlegte
Text, soll in eine Datei geschrieben werden, welche der MTA (exim)
auswertet und die ankommenden Mails des Benutzers beantwortet.
Wenn ich das Script ausführe, wird zwar die Benutzerdatei erstellt, ist
aber leer. Ich vermute, da ist CGI dran schuld.
Anbei das Script.
Danke im Voraus
Stefan
//
#!/usr/bin/perl -w
use strict;
use CGI;
use CGI::Carp qw(fatalsToBrowser);
my $benutzer = "$ENV{'REMOTE_USER'}";
my $deftext = '/opt/default';
my $dateiname = '/tmp/' . $benutzer;
my $anoderab = 'Deaktivieren';
# Standardtext
open DEFTEXT, "$deftext" or die "fehler bei open2: $!\n";
my @deftext = <DEFTEXT>;
my $x = CGI->new();
print $x->header('text/html');
print $x->start_html(-title=>'An/Ab Meldung');
print $x->start_form;
print "Liebe Kollegen,<br><br>
hier haben Sie die Moeglichkeit, fuer die Zeit Ihres Urlaubs,<br>
eine Abwesenheitsnachricht zu aktivieren. Personen, die E-Mails<br>
an Sie senden, erhalten den Hinweis, dass Sie erst nach Ihrer<br>
Rueckkehr antworten werden. Dafuer wird folgender Text verwendet,<br>
den Sie an Ihre Anforderungen anpassen koennen.<br><br>";
if (-e $dateiname) {
open DATEI, "< $dateiname" or die "fehler bei open3: $!\n";
my @abwtext = <DATEI>;
print $x->textarea( -name=>'abwtext',
-default=>join('',@abwtext),
-override=>1,
-rows=>7,
-columns=>50);
close DATEI;
} else {
print $x->textarea( -name=>'deftext',
-default=>join('',@deftext),
-override=>1,
-rows=>7,
-columns=>50);
}
print "<br><br>";
print $x->radio_group( -name =>'abfrage',
-values =>['Aktivieren','Deaktivieren']);
print "<br><br>";
print $x->submit( -name =>'Bestaetigen');
print $x->end_form;
print $x->end_html;
my %werte = $x->Vars;
my $anoderab = $werte{'abfrage'};
my @abwtext = $werte{'abwtext'};
# ueberpruefung, was der kollege vorhat
if ($anoderab eq 'Aktivieren') {
open my $datei, ">$dateiname" or die "fehler bei open4: $!\n";
foreach my $zeile (@abwtext) {
print DATEI $zeile;
close DATEI;
}
} else {
unlink $dateiname;
}
Next: