Martin: skript ergänzen?

Hallo!

Ich hab eigentlich so gut wie keine Ahnung von Perl und muß ein Skript umändern, das dieses dann die Felder _NAME und _TEL überprüft ob ein wert drinnen steht. Mit Java Script hab ich es probiert nur klappt es damit auch nie, weil es sich mit den anderne Java Scripts und Forms durcheinander kommt

Hier ist mein bestehndes Perl Skript:

#!/usr/bin/perl

Define some constants

$mailprog = '/usr/lib/sendmail';

Get the input

read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'});

Split the name-value pairs

@pairs = split(/&/, $buffer);

foreach $pair (@pairs)
{
    ($name, $value) = split(/=/, $pair);

# Un-Webify plus signs and %-encoding
    $value =~ tr/+/ /;
    $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;

# Stop people from using subshells to execute commands
    # Not a big deal when using sendmail, but very important
    # when using UCB mail (aka mailx).
    # $value =~ s/~!/ ~!/g;

# Uncomment for debugging purposes
    # print "Setting $name to $value<P>";

$FORM{$name} = $value;
}

Now send mail to $recipient

open (MAIL, "|$mailprog $FORM{'h_mailto'}") || die "Can't open $mailprog!\n";
print MAIL "From: noreply@domain.xxx\n";
print MAIL "Subject: $FORM{'h_subject'}\n\n";

foreach $key (sort(keys(%FORM)))
{
 print MAIL "$key: $FORM{$key}\n\n";
}

#print MAIL "Server protocol: $ENV{'SERVER_PROTOCOL'}\n";
#print MAIL "Remote host: $ENV{'REMOTE_HOST'}\n";
#print MAIL "Remote IP address: $ENV{'REMOTE_ADDR'}\n";
close (MAIL);

if ($FORM{'h_successurl'} ne "") {
 print "Location: $FORM{'h_successurl'}\n\n";

} else {
 print "Content-type: text/html\n";
 print "The message has been sent!<P>";
 print "<A HREF="$ENV{'HTTP_REFERER'}">Back!</A><P>";
}

Ich hoffe jemand kann mir sagen was ich noch wo ergänzen sollte.

danke

  1. Hi,

    Ich hoffe jemand kann mir sagen was ich noch wo ergänzen sollte.

    eine fertige Lösung? Danach fragst Du hier vergebens - entweder schaffst Du es mit unserer Hilfe eigenständig, oder Du schaffst es nicht.

    Was ich Dir sagen kann ist, dass Du dringend grundlegende Perl-Kenntnisse erwerben solltest. Dein Script sollte mit

    #!/usr/bin/perl -w
    use strict;

    beginnen und im folgenden Zeilen wie

    use Net::SMTP; # anstatt $sendmail
    use CGI;       # anstatt dieser besch***rten read(STDIN,...-Geschichte

    beinhalten - siehe die entsprechenden Seiten der Dokumentation. Desweiteren brauchst Du noch 'my' und 'if'.

    Falls Du die Doku noch nicht kennen solltest: Beginne mit

    perldoc perl
    perldoc perlfaq
    perldoc perlstyle
    und anschließend
    perldoc -f my
    perldoc CGI
    perldoc Net::SMTP

    Cheatah