Kai.S
Threadersteller
Dabei seit: 20.12.2005
Ort: München
Alter: 41
Geschlecht:
|
Verfasst Mo 26.06.2006 17:55
Titel Flash unicode Variablen aus Formular an Perl Mailer CGI? |
|
|
Hi Leute,
mal wieder eine Frage von mir ^^
Ich übergebe per LoadVars die Variablen aus einem Formular an das nachfolgende Perl-Script,
welches in ANSI codiert ist, keine Ahnung warum, aber sobald ich etwas an der Codierung ändere bekomme ich nen Internal Server error 500 vom CGI
Wenn jetzt jemand Umlaute oder Sonderzeichen eingibt, kommt bei mir in der Mail nur Unicode-Brei raus, a la
Wie kann ich das Problem denn lösen? Bitte keine Vorschläge a la - Steig doch auf PHP um
Zitat: | #!/usr/bin/perl
# optionen -n -t sind noetig um absender zu faken
$mailprog = '/usr/sbin/sendmail -f########';
$recipient = '############';
if ($ENV{'REQUEST_METHOD'} eq "GET") {
$in = $ENV{'QUERY_STRING'};
} elsif ($ENV{'REQUEST_METHOD'} eq "POST") {
read(STDIN, $in, $ENV{'CONTENT_LENGTH'});
}
@in = split(/&/,$in);
# @in = split(/&/,$ENV{'QUERY_STRING'});
foreach $i (0..$#in)
{
$in[$i] =~ s/\+/ /g;
# Split into key and value.
($key, $val) = split(/=/,$in[$i],2); # splits on the first =.
# Convert %XX from hex numbers to alphanumeric
$key =~ s/%(..)/pack("c",hex($1))/ge;
$val =~ s/%(..)/pack("c",hex($1))/ge;
# Associate key and value
$in{$key} .= "\0" if (defined($in{$key})); # \0 is the multiple separator
$in{$key} .= $val;
}
# --------------------------------------------------------------
if ($in{'anrede'} ne "")
{
$anrede = $in{'anrede'};
}
if ($in{'firma'} ne "")
{
$firma = $in{'firma'};
}
if ($in{'vorname'} ne "")
{
$vorname = $in{'vorname'};
}
if ($in{'nachname'} ne "")
{
$nachname = $in{'nachname'};
}
if ($in{'strasse'} ne "")
{
$strasse = $in{'strasse'};
}
if ($in{'plz'} ne "")
{
$plz = $in{'plz'};
}
if ($in{'email'} ne "")
{
$email = $in{'email'};
}
if ($in{'telefon'} ne "")
{
$telefon = $in{'telefon'};
}
if ($in{'telefax'} ne "")
{
$telefax = $in{'telefax'};
}
# --------DATE--------------------------------------
($seconds, $minutes, $hours) = localtime (time);
$date1 = localtime (time);
# -------File----------------------------------------------------
open(FREUNDFILE,">>katalog.log");
print FREUNDFILE ("$anrede+$firma+$vorname+$nachname+$strasse+$plz+$email+$telefon+$telefax+$date1\n");
close (FREUNDFILE);
# -------Mail------------------------------------------
open (MAIL, "|$mailprog $recipient") || die "Cant open $mailprog!\n";
print MAIL "Katalogbestellung von VOP!\n\n";
print MAIL "Anrede: $anrede\n";
print MAIL "Firma: $firma\n";
print MAIL "Vorname: $vorname\n";
print MAIL "Nachname: $nachname\n";
print MAIL "Strasse Nr.: $strasse\n";
print MAIL "PLZ Ort: $plz\n";
print MAIL "E-Mail: $email\n";
print MAIL "Telefon: $telefon\n";
print MAIL "Telefax: $telefax\n";
close (MAIL);
# ------------------------------------------------------
print "Content-type: text/html\n\n";
print qq|
<HTML>
<HEAD>
<TITLE>Antwortseite</TITLE>
</HEAD>
<body>
<CENTER>
<P><BR>
<font face="verdana" size=1 color="#ff33cc">Danke für die Nachricht!<p>
</CENTER>
</BODY>
</HTML>
|;
|
|
|