Martin Hoffmann: Wo ist der Fehler?

Beitrag lesen

Hallo zusammen,

ich komme einfach nicht weiter. Seit 2 Tagen beschäftige ich mich mit Perl. Zum einen interessiert mich diese Sprache, zum anderen ist sie noch immer weit verbreitet.

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

Unter http://www.abtsbessingen.de/gaestebuch.html möchte ich diesen installieren. Der User soll mir seinen Gästebuch-Eintrag schicken, damit ich Ihn überprüfen kann. Nur irgendwie klappt das nicht.

Ich hoffe, irgendjemand kann mir helfen

---------------------------------------------------------------------

Schaut euch den Quelltext meiner HTML-Seite an und dann diesen hier vom cgi-Skript:

#!/usr/bin/perl

-------> Individuelle Parameter des Skriptes - bitte anpassen!

--> SMTP-Programm zum Versenden der Mail:

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

--> Ziel-Mailadresse, an die gesendet werden soll:

$mailto = 'ozzyka@gmail.com';

-------> Modul für CGI-Scripts einbinden:

use CGI;

-------> Modul für CGI-Scripts zum Einlesen der Formulardaten anwenden:

$query = new CGI;
@names = $query->param;

-------> interne Daten aus den erwarteten hidden-Feldern auslesen:

$begrenzer = $query->param('begrenzer');  # ---> Begrenzerzeichen zwischen name und value
$adresse = $query->param('adresse');    # ---> URL für Dankeseite
$betreff = $query->param('betreff');      # ---> E-Mail-Subject

-------> alle Whitespace-Zeichen (Leerzeichen, Tabulator, Newline) in Leerzeichen wandeln

#             VERHINDERT sonst möglichen MISSBRAUCH des Skripts
$betreff =~ s/\s/ /g;

-------> Text der E-Mail aus den Formulardaten ermitteln:

$mailtext = "";
foreach(@names) {
  $name = $_;
  @values = "";
  @values = $query->param($name);
  if($name ne "adresse" && $name ne "betreff" && $name ne "begrenzer") {
    foreach $value (@values) {
      $mailtext = $mailtext.$name;
      $mailtext = $mailtext.$begrenzer;
      $mailtext = $mailtext.$value."\n";
    }
  }
}

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

open(MAIL,"|$Sendmail_Prog -t") || print STDERR "Mailprogramm konnte nicht gestartet werden\n";
print MAIL "To: $mailto\n";
print MAIL "Subject: $betreff\n\n";
print MAIL "$mailtext\n";
close(MAIL);

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

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

---------------------------------------------------------------------

Ich habe alle anderen wichtigen Dinge beachtet (755, ASCII, Pfad der CGI-Module).

Wer kann mir helfen?

Danke für eine Antwort.