Wie "option value" aus <SELECT>-Feld auslesen.
Benno
- cgi
Habe ein fertiges CGI-Script zum Versenden eines E-Mail-Formulars verifiziert, das mit der Angabe
$recipient = 'beispiel@adresse.de';
auch funktioniert.
Ich würde nun der Variable $recipient gerne den selektierten Wert einer Auswahlliste zuweisen, um die Auswahl zwischen mehreren E-Mail-Adressen anzubieten:
<FORM NAME="kontakt"....>
...
<SELECT NAME="vorname" ....>
...
<OPTION VALUE="otto@adresse.de">Otto
<OPTION VALUE="rudi@adresse.de">Rudi
...
</SELECT>
</FORM>
Wie muß ich das entsprechende Script editieren?
Vieln Dank für die Hilfe.
hi,
Habe ein fertiges CGI-Script zum Versenden eines E-Mail-Formulars verifiziert, das mit der Angabe
$recipient = 'beispiel@adresse.de';
auch funktioniert.
Wie muß ich das entsprechende Script editieren?
tja, ich würde sagen so, dass es den wert für $recipient dynamisch aus den übergebenen daten übernimmt ... (mehr ist ohne dein script zu kennen nicht dazu zu sagen.)
aber aufpassen, eine abfrage ob die emailadresse auchwirklich zu den von dir "erlaubten" gehört solltest du trotzdem noch einbauen, andernfalls lässt sich dein scriptnämlich prima zum zuspammen anderer emailadressen missbrauchen.
gruss,
wahsaga
tja, ich würde sagen so, dass es den wert für $recipient dynamisch aus den übergebenen daten übernimmt ... (mehr ist ohne dein script zu kennen nicht dazu zu sagen.)
Daran soll es nicht scheitern:
#! /usr/bin/perl
print "Content-type: text/html\n\n";
require "cgi-lib.pl";
&ReadParse(*form_data);
require "mail-lib.pl";
# die E-Mail-Adresse, an die geschickt wird.
$backurl = "http://www.xyz.de";
$recipient = 'beispiel@test.de';
if ($form_data{'action'} eq "add" || $ENV{'REQUEST_METHOD'} eq "GET")
{
print <<" end_of_html";
<HTML><HEAD><TITLE>Test</TITLE>
<link rel="stylesheet" href="../stylesheets/standard.css">
</HEAD>
<BODY>
<H1>Kontakt-Formular</H1>
<P>
Bitte füllen Sie das untenstehende Formular vollständig aus.
end_of_html
&output_add_form;
exit;
}
@form_variables = keys (%form_data);
foreach $field (@form_variables)
{
if ($form_data{$field} eq "" )
{
&missing_required_field_data();
}
}
#######################################################################
# E-Mail an $recipient senden #
#######################################################################
$email_of_guest = "$form_data{'email'}";
$email_subject = "$form_data{'subj'}";
$email_body .= "Sie haben eine neue E-Mail erhalten:\n\n";
$email_body .= "------------------------------------\n";
$email_body .= "Name: $form_data{'realname'}\n";
$email_body .="Absender: <$form_data{'email'}>\n";
$email_body .="Betreff: <$form_data{'subj'}>\n\n";
$email_body .= "$form_data{'content'}\n";
&send_mail("$email_of_guest", "$recipient",
"$email_subject", "$email_body");
#######################################################################
# Bestätigungsseite mit Link zurück ausgeben #
#######################################################################
print <<" end_of_html";
<HTML><HEAD><TITLE>Test</TITLE>
<link rel="stylesheet" href="../stylesheets/standard.css">
</HEAD><BODY>
<H1>Kontakt-Formular</H1>
</body></html>\n
end_of_html
exit;
#######################################################################
# Eingabe war unvollständig #
#######################################################################
sub missing_required_field_data
{
print <<" end_of_html";
<HTML><HEAD><TITLE>Test</TITLE>
<link rel="stylesheet" href="../stylesheets/standard.css">
</HEAD><BODY>
<H1>Kontakt-Formular</H1>
<P>Bitte füllen Sie das untenstehende Formular <span class="form">vollständig</span> aus!
end_of_html
&output_add_form;
exit;
}
#######################################################################
# E-Mail-Formular ausgeben
#######################################################################
sub output_add_form
{
print <<" end_of_html";
<DIV class="form3">
<FORM METHOD = "POST" ACTION = "datenpost.cgi" style="width:95%" name="kontakt">
<TABLE class="form3">
<TR> <TH class="form3">Bereich:</TH><TD class="form3">
<select size="1" name="bereich">
<option value="otto@test.de" Selected>Otto
<option value="rudi@test.de">Rudi
<option value="karl@test.de">Karl
<option value="hans@test.de">Hans
<option value="heiner@test.de">Heiner
</select></TD></TR><TR>
<TH class="form3">Name:</TH>
<TD class="form3"><INPUT TYPE = "text" NAME = "realname" SIZE = "40"
VALUE = "$form_data{'realname'}"></TD>
</TR><TR>
<TH class="form3">E-Mail:</TH>
<TD class="form3"><INPUT TYPE = "text" NAME = "email" SIZE = "40"
VALUE = "$form_data{'email'}"></TD>
</TR><TR>
<TH class="form3">Betreff:</TH>
<TD class="form3"><INPUT TYPE = "text" NAME = "subj" SIZE = "50"
VALUE = "(( Ihr Anliegen ))"></TD>
</TR><TR>
<TH class="form3">Nachricht:</TH>
<TD class="form3"><TEXTAREA NAME = "content" COLS = "60" ROWS = "8">
$form_data{'content'}
</TEXTAREA></TD>
</TR></TABLE>
<CENTER>
<INPUT TYPE = "submit" value=" Absenden ">
<input type="reset" value="Löschen"></th>
</CENTER>
</FORM></DIV>
<P>
<A HREF = "$backurl"><SPAN class="form3">Zur Formularseite</SPAN>
<P ALIGN=Left>
</BODY>
</HTML>
end_of_html
}
aber aufpassen, eine abfrage ob die emailadresse auchwirklich zu den von dir "erlaubten" gehört solltest du trotzdem noch einbauen, andernfalls lässt sich dein scriptnämlich prima zum zuspammen anderer emailadressen missbrauchen.
Könnte man das vermeiden, indem man die E-Mail-Adresse zusammen bastelt, etwa so
$recipient_vorne = option.value.selected
$recipient = recipient_vorne && "@test.de"