Probs mit dem <form>-Tag

Hi erstmal

Ich hab ein Problem, und zwar mit dem <form>-Tag.
Hab da so ein Formular gemacht und ausfüllen und abschicken hat auch korrekt geklappt, aber dann beim Empfang: Schei***.
Ich hab eine Leere eMail empfangen mit dem Anhang "POSTDATA.AAT". Wenn ich die dann im Editor aufmache ist das ziemlich schwer zu lesen:
..."&name=Tester&betreff=Ich+will+einen+Test+machen&dertext=test%0D%0Atest%0D%0Ahttp%3A%2F%2Ftest.tester.de%2Ftest2%2Ftest.htm%0D%0Ausw%0D%0"...
Und irgendwie hab ich das komische Gefühl das da was nicht stimmt....

[edit: LOL man mein Deutsch. Ich korrigier das jetzt nicht, dann könnt ihr auch noch ein bisschen "LOLen"]
 
Hab da so ein Formular gemacht ...
aha, sehr aussagekräftig!
wird die mail per mailto oder über ein extra cgi/php/asp o.ä. gesendet?

... am form tag wird das nicht liegen, sondern eher an dem script über das es versendet wird bzw. an deinem email prog oder browser.

hast du das formular vielleicht über den Internet Explorer 3 oder 4 versendet? diese versionen haben nämlich probleme die formulardaten richtig zu übertragen -> man erhält eine postdata.aat (diese lässt sich z.b. mit dem formmail decoder in eine leserliche form bringen)
 
So wie ich das sehe, wird da ein CGI-Script aufgerufen, dass zwar den übergebenen String aus dem Formular an die angegebene Mail-Adresse versendet, den String allerdings nicht zerlegt und die einzelnen Datenfragmente nicht in zb. einzelne Zeilen schreibt.

Hier ein perl-Script, mit dem es funktioniert. Natürlich müssen Sachen wie Mail-Adresse, sendmail-pfad etc. noch individuell angepasst werden.

#!/usr/bin/perl
#
#######################
#Formulardaten auslesen
#######################
#
if ($ENV{'REQUEST_METHOD'} eq 'GET')
{
$Daten = $ENV{'QUERY_STRING'};
}
else
{
read(STDIN, $Daten, $ENV{'CONTENT_LENGTH'});
}

#
#########################
#Formulardaten aufspalten
#########################
#
@Formularfelder = split(/&/, $Daten);
foreach $Feld (@Formularfelder)
{
($name, $value) = split(/=/, $Feld);
$value =~ tr/+/ /;
$value =~ s/%([afA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
$value =~ s/<!--(.|\n)*-->//g;
$Formular[$i] = $name;
$i = $i + 1;
$Formular[$i] = $value;
$i = $i + 1;
}

#
##################
#Datum und Uhrzeit
##################
#
$Jetztwert = time();
$Jetztzeit = localtime($Jetztwert);
@Zeit = split(/ +/,$Jetztzeit);
@Uhrzeit = split(/:/,$Zeit[3]);

#
#######################
#Mailprogramm: sendmail
#######################
#
$Mailprogramm = "/usr/lib/sendmail";
$MailSubject = "";
$Empfaenger="sadam.hussain@irak.ik";
$SenderName = $Formular[1];
$SenderMail = $Formular[3];

open(MAIL,"|$Mailprogramm -t") || die;

print MAIL "To: $Empfaenger\n";
print MAIL "From: $SenderMail $SenderName\n";
print MAIL "Subject: $MailSubject\n\n";

$i = 0;
$max = $#Formular;
for($i=0;$i<=$max;$i=$i+2)
{
print MAIL "$Formular[$i]: $Formular[$i+1]\n\n";
}

print MAIL "Heute ist ",$Zeit[0],", der ",$Zeit[2],". ",$Zeit[1]," ",$Zeit[4],"\n";
print MAIL "Es ist jetzt ",$Uhrzeit[0],":",$Uhrzeit[1]," Uhr\n";

close(MAIL);

print "Content-type: text/html\n\n";

print "<html>Hier Sollte dann kurz etwas einfügt werden, so dass der User sieht, dass die Daten versendet worden. Zusätzlich sollte ein Link oder eine automatische Weiterleitung per JScript eingefügt werden.</html>\n";
 
Hehe ja schön wärs wenns en Script wär......
Aber bin bei Tripod, und wär mir neu wenn die sowas zuliessen....
Aber danke für den Link @Mackz, sowas hab ich gesucht.

PS: IE6 +Outlook XP
PPS: Trotzdem Danke für den Script @Peter vielleicht lässt sich der ja sonstmal verwenden ;-)
Kann leider kein Perl (VisualBasic und walles was an Anspruch tiefer liegt. Und HTML,JavaScript und CSS sind ja keine Programmiersprachen (Wobei das irgendwie auch jede anders sieht. Na gut JS vielleicht...). Aber bald sind Sommerferien, dann lern ich noch die eine oder andere Sprache...
 
Ich weiß nicht, ob's funktioniert, aber versuch mal in <form> folgendes reinzuschreiben.

method=post
enctype="text/plain"

Ach ja, ein neuer Webspace wär ganz nett, meinst nicht auch? :p
 
ich habe mal probiert mir von einem tripod account aus per formular mit mailto eine mail zu senden und es funktionierte ohne probleme (ie6, outlook6)
hier mal das formular, vielleicht hast du ja irgendwo einen fehler bei dir drin:

<form name="formular" method=post enctype="text/plain" action="mailto:du@da.de?subject=eine mail von deiner website">
<p> name
<input type="text" name="Name">
<br>
email
<input type="text" name="email">
<br>
kommentar: <br>
<textarea name="kommentar" cols="30" rows="10"></textarea>
</p>
<input type="submit" value="senden">
</form>

eine weitere möglichkeit wäre, das von tripod bereitgestellte formular zu verwenden, dort wird die mail über ein cgi verschickt. einziger haken: man kann die emails nur an seine lycos emailadresse senden
bsp.:
<FORM action="/cgi-bin/mailer" encType="multipart/form-data" method="post">
<TABLE>
<TBODY>
<TR>
<TD><B>Ihre Email-Adresse:</B>
</TD>
<TD><INPUT maxLength="35" name="FROM" size="37" value="name@mail.com"> </TD>
</TR>
<TD><INPUT maxLength="35" name="TO" size="37" type="hidden" value="du@lycos.de"> </TD>
<TR>
<TD><B>Betreff:</B></TD>
<TD><INPUT maxLength="35" name="SUBJECT" size="37" value="Tragen Sie hier den Betreff ein"> </TD>
</TR>
<TR>
<TD valign="top"><B>Nachrichtentext:</B></TD>
<TD><TEXTAREA cols="29" name="COMMENTS" rows="4">comments</TEXTAREA> </TD>
</TR>
<TR>
<TD colspan=2><INPUT type="submit" value="Senden"> <INPUT type="reset" value="Löschen"> </TD></TR></TBODY>
</TABLE>
<INPUT type="hidden" maxLength="35" name="GOTOURL" size="37" value="http://mitglied.lycos.de/du/ok.html">
</FORM>
 
Jo, Danke.
Das Problem lag wohl darin, dass ich enctype="text/plain" vergessen hatte.

Die zweite Möglichkeit war mir bereits bekannt, aber wer gebraucht schon eine Lycos-eMail-Addy :p ?
 
Zurück
Oben