Struppi: Wo ist der Fehler?

Beitrag lesen

Nun wollte ich also einen Formmailer von Stefan Münz (http://aktuell.de.selfhtml.org/artikel/cgiperl/form-mail/) auf meine Website anwenden.

Ehrlich, dieses Skript ist leider nicht auf der Höhe der Zeit (ob es das jemanls war ist auch zweifelhaft). Das Skript umzubauen dürfte langwierig sein, ein besseres zu finden könnte schneller gehen.

#!/usr/bin/perl

es fängt schon an, dass die Warnungen nicht eingeschaltet werden und kein use strict verwendet wird.

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

Die Benennung der Variabeln ist zwar so erlaubt aber nicht üblich.

Mehr dazu hier: http://perldoc.perl.org/perlstyle.html

$mailtext = "";
foreach(@names) {
  $name = $_;

Das ist unnötig, so geht es einfacher
foreach my $name (@names) {

@values = "";

Das ist falsch, aber ....

@values = $query->param($name);

sowieso nicht nötig.

if($name ne "adresse" && $name ne "betreff" && $name ne "begrenzer") {
    foreach $value (@values) {
      $mailtext = $mailtext.$name;
      $mailtext = $mailtext.$begrenzer;
      $mailtext = $mailtext.$value."\n";

sehr umständlich

$mailtext .= "$name$begrenzer$value\n";

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

Hast du mal in den Errorlog geschaut?
Wenn du nicht die Möglichkeit dazu hast, nutze CGI::Carp

Es ist aber u.U. einfacher zum versenden ein Modul zu verwenden (z.b. MIME::Lite) , da du noch eine Zeichenkodierung und gültige Header haben willst.

Struppi.

--
Javascript ist toll (Perl auch!)