perlunity.de - PERL | JAVASCRIPT | PHP | MySQL | APACHE



#!/COMMUNITY

Members: 5374
davon online: 1
weitere User: 30
Click for quality!




10.02.2012 / 08:48

Community-Member werden   |   Paßwort vergessen   |   OnlineMonitor (1) Wer ist online ... OnlineMonitor starten !
     

 

Home


PERLscripts


PHPscripts


JAVAscripts


Hilfreiches


Links2www


Newscenter


Community


Interna




Community  »  CGI: Allgemeines Forum zur Themenübersicht Themensuche Themenansicht in Thread-Modus


BeitragFormular - Empfänger auswählen - CGI
Seitenanfang
Hallo,

ich habe ein Formular, in dem ich einen von vier verschiedenen Empfängern auswählen kann. Die Emailadresse ist nicht in der HTML Datei enthalten, sondern soll vom Skript ermittelt werden in Abhängigkeit vom Wert der Empfängerfeldes aus dem Formular.

Es will aber nicht funuktionieren. Vielleicht kann mir jemand weiterhelfen.

Hab hier mal den HTML Code und den CGI Code.

HTML DATEI ANFANG

<form action="./cgi-bin/selfmail.pl" method="post">
<input type="hidden" name="return" value="./kontanktformular_danke.htm">
<input type="hidden" name="delimiter" value=": ">
<input type="hidden" name="subject" value="Anfrage über Kontakt-Formular">

<select name="Anrede" size="1">
<option value="Herr">Herr
<option value="Frau">Frau</select>

<p>Vorname</p>
<input type="Text" name="Vorname" value="" size="30" maxlength="30">

<p>Name</p>
<input type="Text" name="Name" value="" size="30" maxlength="30">

<p>Emailadresse</p>
<input type="Text" name="Email" value="" size="40" maxlength="40">

<p>Mitteilung senden an:</p>
<select name="Empfaenger" size="1">
<option value="MA1">Mitarbeiter1
<option value="MA2">Mitarbeiter2
<option value="MA3">Mitarbeiter3
<option value="MA4">Mitarbeiter4
</select>

<p>Mitteilungstext</p>
<textarea name="Mitteilung" cols="40" rows="15"></textarea>

<input type="reset" value="Formular löschen">

<input type="Submit" name="Senden" value="Absenden">
</form>

HTML DATEI ENDE

CGI SKRIPT ANFANG

#!/usr/bin/perl

$Sendmail_Prog = "/usr/lib/sendmail";

use CGI;

$query = new CGI;
@names = $query->param;

$delimiter = $query->param('delimiter'); # ---> Begrenzerzeichen zwischen name und value
$returnhtml = $query->param('return'); # ---> URL für Dankeseite
$subject = $query->param('subject'); # ---> E-Mail-Subject
$subject =~ /\s/ /g

if $query->param('Empfaenger') eq 'MA1'{
$mailto = 'Email1@hier.dort'
}
if $query->param('Empfaenger') eq 'MA2'{
$mailto = 'Email2@hier.dort'
}
if $query->param('Empfaenger') eq 'MA3'{
$mailto = 'Email3@hier.dort'
}
if $query->param('Empfaenger') eq 'MA4'{
$mailto = 'Email4@hier.dort'
}

$mailtext = "";
foreach(@names) {
$name = $_;
@values = "";
@values = $query->param($name);
if($name ne "return" && $name ne "subject" && $name ne "delimiter") {
foreach $value (@values) {
$mailtext = $mailtext.$name;
$mailtext = $mailtext.$delimiter;
$mailtext = $mailtext.$value."\n";
}
}
}

open(MAIL,"|$Sendmail_Prog -t") || print STDERR "Mailprogramm konnte nicht gestartet werden\n";
print MAIL "To: $mailto\n";
print MAIL "Subject: $subject\n\n";
print MAIL "$mailtext\n";
close(MAIL);

print "Location: $returnhtml\n\n";

CGI SKRIPT ENDE

Datum: 20.10.2005-22:05

Beitragre: Formular - Empfänger auswählen - CGI
Seitenanfang
Hi,
hab das jetzt mal bei mir zum Laufen gebracht (Du brauchst übrigens nicht zwei bzw. drei Dokumente, eins würde reichen - ich habe mal aus dem Formular und der Abarbeitung eins gemacht):

#!/usr/bin/perl -w

use strict;
use CGI;
use CGI::Carp qw(fatalsToBrowser);

my $query = new CGI;

if ($query->param) {
my $params = $query->Vars;
my $Sendmail_Prog = "/usr/lib/sendmail";

my $mailto;
if ($params->{'Empfaenger'} eq 'MA1'){
$mailto = 'Email1@hier.dort';
}
elsif ($params->{'Empfaenger'} eq 'MA2'){
$mailto = 'Email2@hier.dort';
}
elsif ($params->{'Empfaenger'} eq 'MA3'){
$mailto = 'Email3@hier.dort';
}
elsif ($params->{'Empfaenger'} eq 'MA4'){
$mailto = 'Email4@hier.dort';
}
else {
# etwas ging schief
}

my $mailtext;
foreach my $field (keys %{$params}) {
next if $field eq 'delimiter';
next if $field eq 'return';
next if $field eq 'Senden';
next if $field eq 'subject';
next if $field =~ m/^MA\d/;
$mailtext .= $field . ': ' . $params->{$field} . "\n";
}

open(MAIL,"| $Sendmail_Prog -t") || print STDERR "Mailprogramm konnte nicht gestartet werden\n";
print MAIL "To: $mailto\n";
print MAIL "Subject: " . $params->{'subject'} . "\n\n";
print MAIL "$mailtext\n";
close(MAIL);

print "Location: " . $params->{'return'} . "\n\n";

}
else {
print $query->header;
print $query->start_html;
print<<'EOF';

<form method="post">
<input type="hidden" name="return" value="mail.cgi">
<input type="hidden" name="subject" value="Anfrage ber Kontakt-Formular">

<select name="Anrede" size="1">
<option value="Herr">Herr
<option value="Frau">Frau</select>

<p>Vorname</p>
<input type="Text" name="Vorname" value="" size="30" maxlength="30">

<p>Name</p>
<input type="Text" name="Name" value="" size="30" maxlength="30">

<p>Emailadresse</p>
<input type="Text" name="Email" value="" size="40" maxlength="40">

<p>Mitteilung senden an:</p>
<select name="Empfaenger" size="1">
<option value="MA1">Mitarbeiter1
<option value="MA2">Mitarbeiter2
<option value="MA3">Mitarbeiter3
<option value="MA4">Mitarbeiter4
</select>

<p>Mitteilungstext</p>
<textarea name="Mitteilung" cols="40" rows="15"></textarea>

<input type="reset" value="Formular löschen">

<input type="Submit" name="Senden" value="Absenden">
</form>
EOF
}


Gruss,
svenXY

Datum: 21.10.2005-10:14

-






-
-