Cheatah: Erfassung von Datum und Zeit

Beitrag lesen

Hi,

aber als ich den \n und noch die IP Adresse mitschicken wollte, funktinierte das alles nicht mehr richtig.

und das heißt? Fehler und Probleme bitte immer mit Fehler- bzw. Problembeschreibung.

#!/usr/bin/perl

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

Du ahnst nicht, wie viele Fehler Dir das aufdecken wird.

$Sendmail_Prog = "/usr/lib/sendmail";

Ich hätte mal mitzählen sollen, wie oft ich in letzter Zeit auf

perldoc perlstyle

verwiesen habe. Außerdem:

perldoc -f my
perldoc perlfaq4 What's wrong with always quoting "$vars"?

my $sendmail_prog = '/usr/lib/sendmail';

Ich gehe mal nicht darauf ein, daß Net::SMTP die deutlich bessere Wahl wäre :-)

use CGI;

Gut!

@names = $query->param;

Nicht gut. param() liefert Dir bereits ein Array, das Du direkt verwenden kannst; es ist nicht nötig, es noch mal in den Speicher zu kopieren.

$mailtext = "Aufgegebene Bestellung:\n";
$mailtext = "$ENV{'REMOTE_ADDR'}\n";

Du setzt hier eine Variable, und überschreibst ihren Inhalt sogleich wieder. Das ist vergleichbar damit, etwas auszudrucken, um es in den Schredder zu geben.

my $mailtext = "Aufgegebene Bestellung:\n";
$mailtext .= "$ENV{'REMOTE_ADDR'}\n";

Siehe perldoc perlop

foreach(@names) {

next if ($_ eq 'mailto' || $name eq 'return' || $name eq 'subject' || $name eq 'delimiter');
foreach my $value ($query->param($_)) {
  $mailtext .= $_.$delimiter.$value."\n";
}

}

-------> E-Mail versenden:

open(MAIL,"|$Sendmail_Prog -t") || print STDERR "Mailprogramm konnte nicht gestartet werden\n";

Besser:

open(...) or die "Mailprogramm konnte nicht gestartet werden: $!";

print MAIL "To: $mailto\n";
print MAIL "Subject: $subject\n\n";

Kein From?

close(MAIL);

close(MAIL) or die "Mailprogramm konnte nicht geschlossen werden: $!";

-------> Dankeseite an Browser senden:

print "Location: $returnhtml\n\n";

print $query->redirect($returnhtml);

Also wie gesagt, wollte halt in der email einen Absatz einfügen

Du hast erst einen Umbruch eingefügt. Zwei davon ergeben einen Absatz.

Cheatah