Daniel: Formularauswertung

Hallo,

folgendes Problem. Ich habe ein Formular gemacht, womit man Mails an einer beliebigen Adresse verschicken kann. Leider funktioniert es nicht. Ich habe irgendwas vergessen beim Parsen. Anstatt eine Empfängeradresse vom Typ daniel@baden-online.de zu haben, habe ich daniel%40baden-online.de

Vielen Dank für die Hilfe, hier der Code:

#!/usr/bin/perl
$MAIL_PROGRAM="/usr/sbin/sendmail -t ";

if ($ENV{'REQUEST_METHOD'} eq 'GET')
{
$Daten = $ENV{'QUERY_STRING'}
}
else
{
read(STDIN, $Daten, $ENV{'CONTENT_LENGTH'});
}

@Formularfelder = split (/&/, $Daten);

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

#open (MAIL, "$MAIL_PROGRAM");
#print MAIL "To: $Formular{'empfang'}\n";
#print MAIL "From: daniel@baden-online.de\n";
#print MAIL "Subject: $Formular{'betreff'}\n\n";
#print MAIL "$Formular{'message'}\n";
#close(MAIL);

print "Content-type: text/html\n\n";
print "<html>Erfolgreich verschickt</html>";

  1. Hallo Daniel,

    »»  $value =~ s/%([a-fA-F0-9] [a-fA-F0-9])/pack("C", hex($1))/eg;

    Probiers mal so:
             $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C",hex($1))/ge;

    Gruß

    Christian Schnagl

  2. Hi,

    folgendes Problem. Ich habe ein Formular gemacht, womit man Mails an einer beliebigen Adresse verschicken kann. Leider funktioniert es nicht. Ich habe irgendwas vergessen beim Parsen. Anstatt eine Empfängeradresse vom Typ daniel@baden-online.de zu haben, habe ich daniel%40baden-online.de

    ich code mal um:

    #!/usr/bin/perl
    $MAIL_PROGRAM="/usr/sbin/sendmail -t ";

    use CGI;
    $query = new CGI;
    $Formular{'empfang'} = $query->param("empfang");
    $Formular{'betreff'} = $query->param("betreff");
    $Formular{'message'} = $query->param("message");

    das kannst Du natürlich auch "direkt" machen, also ohne Umweg über ein Hash; diese Zeilen dienen nur der Veranschaulichung.

    #open (MAIL, "$MAIL_PROGRAM");
    #print MAIL "To: $Formular{'empfang'}\n";
    #print MAIL "From: daniel@baden-online.de\n";
    #print MAIL "Subject: $Formular{'betreff'}\n\n";
    #print MAIL "$Formular{'message'}\n";
    #close(MAIL);

    print "Content-type: text/html\n\n";
    print "<html>Erfolgreich verschickt</html>";

    Genau :-)

    Cheatah