Hackerboard Wiki HaboBlog
Hackerboard bei Facebook Hackerboard bei Google+ Hackerboard bei Twitter

[HaBo]

 
(Web-) Design und webbasierte Sprachen Tipps & Tricks, Designabgleich, HTML & Javascript, Flash, ASP, PHP, Perl/CGI...

E-Mail-Formular

Diskussion: E-Mail-Formular im Forum (Web-) Design und webbasierte Sprachen, in der Kategorie Web, Network & Multimedia Palace; Anzeige Hallo! Ich bin ein ziemlicher CGI-Newbie, habe aber jetzt doch ein funktionierendes Script geschrieben, dass die Formulardaten ausliest und ...

Antwort
Alt 23.11.01, 15:19   #1 (permalink)
zerojump
Guest
 
Likes:
Standard E-Mail-Formular

Anzeige

Hallo!

Ich bin ein ziemlicher CGI-Newbie, habe aber jetzt doch ein funktionierendes Script geschrieben, dass die Formulardaten ausliest und als E-Mail verschickt. So weit so gut. Strukturiere ich nun aber mit Hilfe einer Tabelle innerhalb des <form>-Tags mein Formular, so liest mein CGI-Script nur noch das erste Feld aus und ignoeriert den Rest.

Hier erst mal der relevante Auschnitt aus dem HTML-Code:

(Kontrolle() und Sicher() sind JavaScript-Funktionen, die die Eingaben überprüfen, ich werde diese demnächst durch CGI ersetzen)

<form name="Nachricht" action="cgi-bin/maildata.cgi" method="post" enctype="text/plain" onSubmit="return Kontrolle()" onReset="return Sicher()">
<table border=1 bordercolor="black" width="95%" cellspacing=0 cellpadding=5>
<tr>
<td width="50%" align=right>
<span class=text2>
*Vorname*
</span>
</td>
<td width="50%" align=center>
<input name="Vorname" size=25 maxlength=40>
</td>
</tr>
<tr>
<td width="50%" align=right>
<span class=text2>
*Nachname*
</span>
</td>
<td width="50%" align=center>
<input name="Nachname" size=25 maxlength=40>
</td>
</tr>
<tr>
<td width="50%" align=right>
<span class=text2>
*Straße und Hausnummer*
</span>
</td>
<td width="50%" align=center>
<input name="Strasse" size=25 maxlength=35>
</td>
</tr>
<tr>
<td width="50%" align=right>
<span class=text2>
*Postleitzahl und Wohnort*
</span>
</td>
<td width="50%" align=center>
<input name="Ort" size=25 maxlength=40>
</td>
</tr>
<tr>
<td width="50%" align=right>
<span class=text2>
Telefonnummer
</span>
</td>
<td width="50%" align=center>
<input name="Telefon" size=25 maxlength=25>
</td>
</tr>
<tr>
<td width="50%" align=right>
<span class=text2>
*E-Mail Adresse*
</span>
</td>
<td width="50%" align=center>
<input name="Mail" size=25 maxlength=50>
</td>
</tr>
<tr>
<td colspan=2 width="100%" align=center>
<span class=text2>
*Ihre Nachricht:*
</span>
<br>
<textarea cols=42 rows=8 name="Nachricht">
</textarea>
<br>
<input type=submit value="verschicken" onMouseOver="window.status='verschicken an info@wieditz-anstrich-putz.de'; return true;"

onMouseOut="window.status='Formular ausfüllen'; return true;">
<input type=reset value="alles löschen" onMouseOver="window.status='Formular zurücksetzen'; return true;" onMouseOut="window.status='Formular ausfüllen';

return true;">
<br>
</td>
</tr>
</table>
</form>

Der Code des CGI-Scripts sieht folgendermaßen aus:

#! /usr/bin/perl

read(STDIN, $Daten, $ENV{'CONTENT_LENGTH'});
@formdata = split(/&/, $Daten);

print "Content-type: text/html\n\n";
print "<HTMl>\n";
print "<head>\n";
print "<title>Verschicken der Daten</title>\n";
print "</head>\n";
print "<body background='../Pictures/hhintergrund.gif' link='black' alink='black' vlink='black'>\n";
print "<p align=center>";
print "<h2>Erfolgreich versendet</h2>";

open MAILER, '| /usr/sbin/sendmail -t';
print MAILER << 'ENDE';
from: Anfragesteller
to: pcm-sasa@uni.de
subject: Anfrage von Web-Site
ENDE
print MAILER "Vom Kontaktformular der Firma Wieditz wurden folgende Formulardaten versendet:\n\n";

foreach $feld (@formdata)
{
($name, $value) = split(/=/, $feld);
$value =~ tr/+/ /;
$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
$Formular{$name} = $name;
$Formular{$value} = $value;
print MAILER "$Formular{$name} : $Formular{$value}\n\n";
}
close MAILER;

print "<br><a href='../formular.html'>Zurueck</a>";
print "</Body>\n";
print "</HTML>\n";

---------------------------------------------------------------------

Wenn ich das Formular OHNE Tabelle erstelle, dann funzt das Scrpt einwandfrei. Woran bitte kann das liegen.

In der verschickten E-Mail an mich steht lediglich, der Name des ersten Feldes und der eingegebene Wert und dann noch der Name des nächsten Feldes, das wars.

Wer hilft weiter?

  Mit Zitat antworten
Alt 23.11.01, 18:39   #2 (permalink)
 
Registriert seit: 09.10.01
ultimator303 Leistung: Facit NTK
Likes: 0
Standard

Hmm, erstens gehören alle Attribut Werte in Dopelquotas (") aber das wird wohl nicht das eigentliche Problem hier sein, aber es wird einige Browser dazu bewegen das Formular bzw. die ganze Seite erst mal gar nicht zu parsen.
Und dann, wo ich denke (hab's nicht getestet, sry no time) dass das Problem liegt, ist dass du keinen Input Type definiert hast, also <input type="text">...
ultimator303 ist offline   Mit Zitat antworten
Antwort
   
- Anzeige -

Werbung ist gerade online    

[HaBo] » Web, Network & Multimedia Palace » (Web-) Design und webbasierte Sprachen » E-Mail-Formular
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind aus
Pingbacks sind aus
Refbacks sind aus


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
1 E-Mail Adresse = 2 E-Mail Adressen dutchman2006 Internet Allgemein 12 24.07.08 18:07
E-Mail-Adressen aus Phoenix-Mail auslesen Sebifi Code Kitchen 4 16.12.06 02:53
E-Mail herkunft herausfinden | Mail-Header verstehen Imrahil Die Problemzone 3 03.05.05 14:38
E-Mail-Formular Outlook-frei xoxDSHxox (Web-) Design und webbasierte Sprachen 6 23.03.04 20:55
Mail an Support wegen Mail Problem DocZimmermann Fun Section 1 09.11.01 17:52


1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61