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