skript ergänzen?
Martin
- perl
0 Cheatah
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
$mailprog = '/usr/lib/sendmail';
read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'});
@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;
}
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
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