Jakob: Alienform

Beitrag lesen

Sorry!

Teil des Codes des cgi für:
********************************************************************
sub ParseForm
    {
    my ($key, $prefs, $buffer);
    if ($ENV{'REQUEST_METHOD'} eq 'GET')
        { @pairs = split(/&/, $ENV{'QUERY_STRING'}) }
    elsif ($ENV{'REQUEST_METHOD'} eq 'POST')
        {
        read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'});
        @pairs = split(/&/, $buffer)
        }
    else {Error('Bad or Unbekannte Request-Methode',
                "Das Formular muß mit REQUEST=POST oder REQUEST=GET übertragen werden, Fehler in HTML-Datei prüfen!.")}

foreach $pair (@pairs)
        {
        local($name, $value) = split(/=/, $pair);
        $name =~ tr/+/ /;
        $name =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
        $value =~ tr/+/ /;
        $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
        $value =~ s/<!--(.)*?-->//mg;
        $FORM{$name} = $value;
        if ($name =~ /_/ and $name !~ /^_/)
            {
            ($prefs, $key) = split /_/, $name, 2;
            if ($prefs =~ /r/i and not $value)                { push @missing_values, $key }
            if ($prefs =~ /e/i and $value and
                (($value =~ /(@.*@)|(..)|(@.)|(.@)|(^.)/) or
                  ($value !~ /^.+@([?)[a-zA-Z0-9-.]+.([a-zA-Z]{2,3}|[0-9]{1,3})(]?)$/)))
                                                              { push @bad_emails, $key      }
            if ($prefs =~ /d/i and $value and $value =~ /\D/) { push @only_digits, $key     }
            if ($prefs =~ /w/i and $value and $value =~ /\W/) { push @only_words, $key      }
            if ($prefs =~ /s/i and $value)                    { $value =~ s/^(\s)*//;
                                                                $value =~ s/(\s)*$//;
                                                                $FORM{$name} = $value;       }
            }

}
    }

sub ParseText
    {
    my ($line, $key, $value, $sub);
    foreach $line (@_)
        {
        while (($key => $value) = each %FORM)
            { $line =~ s/[$key]/$value/ig }
        while (($key => $value) = each %ENV)
            { $line =~ s/[%$key]/$value/ig }
        $line =~ s/[^<*?[^>]]//g;
        }
    foreach $line (@_)
        {
        while ($line =~ /[<((.)*?)>]/)
            {
            $sub = $1;
            $sub =~ s/[^\d+\*/-%.x<>()]//g;
            $sub = eval $sub;
            $line =~ s/[<(.)*?>]/$sub/
            }
        }
    return @_;
    }

sub SendMail
    {
    open(MAIL,"|$mail_cmd") or Error('Fehler - Mailer öffnen',"Ein Fehler tritt auf beim Starten des Mailers ($mail_cmd): $!.");
    print MAIL @_;
    close(MAIL) or Error('Mail Send Error',"Ein Fehler tritt beim Senden der eMail auf: $?. Please check the email's headers.");
    }

__END__
*********************************************************************
Die Antorttextdatei ist dann folgendermaßen aufgebaut (funktioniert):

Mail an den der das Formular ausgefüllt hat:
To: [email]
From: jakob@druese.at
Subject: formular

Nachricht

Ebenso ist die Textdatei aufgebaut, die an mich gehen soll - eben der Teil der nicht funktioniert:
To: jakob@druese.at
From: [email]
Subject: formular

Nachricht

noch mal recht herzlichen Dank

Jakob

- Es brqaucht nicht unbedingt dieses cgi sein.
es sollte jedoch nur die ausgefüllten Variablen übernehmen können, und für verschiedene Formulare einsetzbar sein.