Hallo Mondschatten,
also ich bin bei evanzo.de
und hier hab ich mal das formular.cgi script mal kopiert...
--------------------------------------------
!/usr/bin/perl
#
# Copyright (c) 2002, Markus Roghani, <
mar@perl-seite.de>
# All rights reserved.
#
# URL:
http://www.perl-seite.de/
#
# formular.cgi darf von jedermann kostenlos benutzt und geändert werden, solange
# dieser Copyright-Verweis und die restlichen Kommentare erhalten bleiben. Mit
# dem Einsatz dieses Skripts akzeptieren Sie, daß Markus Roghani von jeglicher
# Haftung und Gewährleistung hinsichtlich des Einsatzes befreit ist.
#
# Der Verkauf dieses Skripts, auch in modifizierter Form, ist ohne vorherige
# Absprache ausdrücklich untersagt.
# Mit anderen Worten: Bitte fragen Sie mich, bevor Sie versuchen, mit meinem
# Skript Geld zu verdienen.
#
# Um dieses Skript über das Internet oder irgendein anderes Medium
# weiterzuverbreiten, benötigen Sie vorher meine Erlaubnis. In jeden Fall
# müssen der Copyright-Verweis und die restlichen Kommentare erhalten bleiben.
#
#
# $Id: formular.cgi,v 1.1 2002/11/03 14:44:10 markus Exp $
use strict;
use CGI::Carp qw(fatalsToBrowser);
use CGI qw/:standard/;
use Fcntl;
my $cgi = new CGI;
#===============================================
# Einlesen der Formular Config Datei
#===============================================
my $formular_conf = $cgi->param("config");
my %globPreference;
sysopen (CONF_FILE, "$formular_conf", O_RDONLY) or die "Kann $formular_conf nicht oeffnen: $!\n";
while (<CONF_FILE>)
{
chomp; # keine Newline
s/#.*//; # keine Kommentare
s/^\s+//; # keine fuehrende Whitespaces
s/\s+$//; # keine angehaengten Whitespaces
next unless length; # noch was da ?
if (/(\S+) ?= ?"(.*?)"/g)
{
my $left_val = $1;
my $right_val = $2;
}
if ($1 && length ($1) > 0)
{
$globPreference{$1} = $2;
}
}
close(CONF_FILE);
my $mail_from = get_var("MAIL_FROM");
my $mail_to = get_var("MAIL_TO");
my $mail_cc = get_var("MAIL_CC");
my $mail_bcc = get_var("MAIL_BCC");
my $subject = get_var("MAIL_SUBJECT");
my $felder = get_var("FELDER");
my $pflichtfelder = get_var("PFLICHTFELDER");
my $sendmail = get_var("MAIL_PROGRAMM");
my $redirect = get_var("REDIRECT");
my $error_page = get_var("ERROR_PAGE");
$felder =~ s/ //g; # whitespaces entfernen
my @felder = split(/,/, $felder);
$pflichtfelder =~ s/ //g; # whitespaces entfernen
my @pflichtfelder = split(/,/, $pflichtfelder);
#===========================================
# Einlesen der Formulardaten
#===========================================
my %values;
foreach(@felder)
{
$values{$_} = $cgi->param($_);
}
#=================================================
# Pruefen ob alle Pflichtfelder ausgefuellt wurden
#=================================================
foreach (@pflichtfelder)
{
error("$_") if (! $values{$_});
}
#=================================================
# Formular mit Sendmail versenden
#=================================================
die("Fehler: Es wurde kein MAIL_TO in $formular_conf definiert") if (!$mail_to);
die("Fehler: Es wurde kein MAIL_PROGRAMM in $formular_conf definiert") if (!$sendmail);
my $rcpts = "To: $mail_to";
$rcpts .= "\nCc: $mail_cc" if ($mail_cc);
$rcpts .= "\nBcc: $mail_bcc" if ($mail_bcc);
my $msg;
foreach(@felder)
{
$msg .= "[$_]: $values{$_}\n";
}
if ($mail_from)
{
$values{email} = $mail_from;
}
if ($subject)
{
$values{betreff} = $subject;
}
my $sendmailcmd = "|$sendmail -t -f\"$values{email}\"";
open(SENDMAIL, $sendmailcmd) or die "Kann Sendmail nicht aufrufen: $!\n";
print SENDMAIL <<END;
From: $values{email}
$rcpts
X-Mailer: FormMailer perl-seite.de
Subject: $values{betreff}
Formular Daten:
$msg
---------------------------------------------------
Formular wurde von der Seite
$ENV{'HTTP_REFERER'}
aufgerufen mit der IP $ENV{'REMOTE_ADDR'}
---------------------------------------------------
END
close(SENDMAIL);
#========================================
# REDIRECT Seite aufrufen
#========================================
print "Location: $redirect\n\n";
# Ende
#========================================
# Subroutinen
#========================================
sub get_var
{
my $varName = shift;
return ($globPreference{$varName});
}
sub error
{
my $missing = shift;
if ($error_page)
{
print "Location: $error_page\n\n";
}
else
{
print "Content-type: text/html\n\n";
print <<EOT;
<html>
<head><title>Bitte Pflichtfelder ausfüllen</title></head>
<body>
<b>Bitte füllen Sie das Pflichtfeld $missing aus.</b>
Back Button des Browsers drücken, um zum Formular zurück zu gelangen.
</body>
</html>
EOT
}
exit(1);
}
-------------------------------------------------------------
würde mich sehr freuen auf deine /eure Hilfe!
Mit freundlichen Grüßen
Jarik