Was ist Prel ? hihi
Du kannst die Spezialvariable $^O nutzen um herauszufinden
unter welchen Betriebssystem das Skript laeuft.
027: my @email_list = ("info\@chedapinta.com", "webmaster\@chedapinta.com");
Wenn du den qw-Operator nutzt kann man verhindern, dass ein
fehlender Backslash zu ungeahnten Fehlern fuehrt.
my @email_list = qw(
info@chedapinta.com
webmaster@chedapinta.com
);
Was machst du hier ?
035: $FORM{'recipient'} = my $recipient;
043: $text =~ s/\cM//g;
044: $text =~ s/\n//g;
Ich verstehe zwar nicht warum du alle Zeilenumbrueche entfernst
aber, hier etwas schneller:
061: (my $sec, my $min, my $hour, my $mday, my $mon, my $year, my $wday, my $yday, my $isdst) = localtime(time);
kurz:
my($sec, $min, $hour, $mday, $mon, $year, $wday, $yday, $isdst) = localtime(time);
067: my $countfile = 'kontaktcount.txt';
068: my $count = `cat $countfile`;
069: chop($count);
070: $count = $count + 1;
071: open (INF, ">$countfile") || die "Kann Countfile nicht öffnen: $!";
072: print INF "$count\n";
073: close (INF);
So viel zu Punkt 2
my $countfile = 'kontaktcount.txt';
my $count;
open(COUNT, '<', $countfile) or die $!;
my $count = <COUNT>;
close(COUNT);
chomp($count);
open(COUNT, '>', $countfile) or die $!;
print ++$count;
close(COUNT);
und Punkt 3 (Sperrung der Datei):
my $countfile = 'kontaktcount.txt';
my $count;
open(COUNT, '<', $countfile) or die $!;
flock(COUNT, 2) or die $!;
my $count = <COUNT> || 0;
flock(COUNT, 8) or die $!;
close(COUNT);
chomp($count);
open(COUNT, '>', $countfile) or die $!;
flock(COUNT, 2) or die $!;
print ++$count;
flock(COUNT, 8) or die $!;
close(COUNT);
oder aber
use Fcntl;
my $countfile = 'kontaktcount.txt';
sysopen(COUNT, $countfile, O_RDWR|O_CREATE) or die $!;
flock(COUNT, 2) or die $!;
my $count = <COUNT> || 0;
chomp($count);
seek(COUNT, 0, 0) or die $!;
truncate(COUNT, 0, 0) or die $!;
print COUNT ++$count;
close(COUNT);
Hier pruefst du nur ob eine Ziffer im Namen enthalten ist.
089: &falsch('Fehler 04: Bitte einen gueltigen Namen eingeben !<br>') unless ($name =~ m/\D/);
besser waere natuerlich du schlieszt alle Zeichen bis auf
die die du haben willst aus.
&falsch('...') unless $name =~ /^[-A-Za-z\s]+$/; # Bindestrich, Buchstaben, Leerzeichen
05: open (MAIL, "|$mailprog -oi -t") || die "Kann Sendmail nicht starten: $!";
106: print MAIL "From: $email\n";
107: print MAIL "To: $email_list[0]\n";
108: print MAIL "Subject: $subject\n\n";
109: print MAIL "===========================================\n";
110: print MAIL "====== KUNDENANFRAGE via WebFormular ======\n";
[...]
127: print MAIL "<<< Dies ist ein Service des Webmasters: Nils Meiser >>>";
128: close (MAIL);
mit einen HERE-Dokument sparst du dir ein paar prints und die explizite
Angabe von Newlines:
print MAIL <<"EOMAIL";
From: $email
To: $email_list[0]
Subject: $subject
===========================================
====== KUNDENANFRAGE via WebFormular ======
[...]
<<< Dies ist ein Service des Webmasters: Nils Meiser >>>
EOMAIL
Grusz Christian :).
,,Das perlt aber heute wieder...'' -- Dittsche