[Thread Prev][Thread Next]   >Date Index >Thread Index

CGI Vacation Script

Stefan Bauer - Sat Sep 22 10:35:59 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;
# 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: