Hallo liebe Community, habe leider nicht mehr den richtigen link auf selfhtml gefunden, wo ich damals den code her hab. bin mir auch net ganz sicher obs nun in die kategorie PERL oder CGI passt, aber ich fang einfach mal an. Und sorry fals die Frage schonmal beantwortet wurde, habe nichts gefunden beim suchen.
Ich habe also ein funktionierendes formular im Netz (http://www.bodenseejugend.de/bodenseejugend.de/internetseiten/umfragen/umfrage_1/umfrage_1.htm).
Nach abschicken des Formulars wird es mir per e-mail zugeschickt, dass funktioniert auch inzwischen alles wunderbar.
Mein problem ist nun, dass ich nur die Formularfelder per mail geschickt bekomme, die auch ausgefüllt sind. gibts eine möglichkeit das zu ändern und ich immer (ob nun ausgefüllt oder nicht) alle Felder per Mail zugeschickt bekomme?
und hier ist der code der im Formular eingesetzt wird:
<!--- E-Mail Weiterleitung an cgi-bin-selfmail.pl auf dem Webspaceserver, das die Daten per E-Mail verschickt --->
<form name="Adresse" action="http://www.bodenseejugend.de/cgi-bin/selfmail.pl" method="post" form onreset="return confirmReset(this)">
<input type="hidden" name="return" value="http://www.bodenseejugend.de/bodenseejugend.de/intern
etseiten/umfragen/danke_1.html">
<input type="hidden" name="delimiter" value=": ">
<input type="hidden" name="subject" value="Feedback-Formular">
nun der Code vom selfmail.pl:
#!/usr/bin/perl
-------> Individuelle Parameter des Skriptes - bitte anpassen!
--> SMTP-Programm zum Versenden der Mail:
$Sendmail_Prog = "/usr/sbin/sendmail";
--> Ziel-Mailadresse, an die gesendet werden soll:
$mailto = 'umfrage-1-lexikon@bodenseejugend.de';
-------> Modul für CGI-Scripts einbinden:
use CGI;
-------> Modul für CGI-Scripts zum Einlesen der Formulardaten anwenden:
$query = new CGI;
@names = $query->param;
-------> interne Daten aus den erwarteten hidden-Feldern auslesen:
$delimiter = $query->param('delimiter'); # ---> Begrenzerzeichen zwischen name und value
$returnhtml = $query->param('return'); # ---> URL für Dankeseite
$subject = $query->param('subject'); # ---> E-Mail-Subject
-------> alle Whitespace-Zeichen (Leerzeichen, Tabulator, Newline) in Leerzeichen wandeln
VERHINDERT sonst möglichen MISSBRAUCH des Skripts
$subject =~ s/\s/ /g;
-------> Text der E-Mail aus den Formulardaten ermitteln:
$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";
}
}
}
-------> E-Mail versenden:
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);
-------> Dankeseite an Browser senden:
print "Location: $returnhtml\n\n";
Wäre echt net von euch, wenn mir das einer eben ändern könnte, habe keine ahnung was diese ganzen zeichen da im code bedeuten, ist chinesisch für mich ;-)
Meine E-Mail FritzHugo3@yahoo.de
Danke David