Bernd Daniel: selfmail.pl

Hallo,
ich komme nicht damit zurecht. Könnt Ihr mir mitteilen, was und wie ich evtl. am Script ändern muss,damit meine Formulare laufen? Ich benutze das Verzeichnis cgi-bin und folgendes Formular:

<form action="http://www.igvpokal.de/cgi-bin/selfmail.pl" method=POST name="FrontPage_Form1" onsubmit="return FrontPage_Form1_Validator(this)"><p> <font color="#FFFFFF"> <input type="hidden" name="mailto" value="be.daniel@t-online.de"><input type="hidden" name="return" value="http://www.igvpokal.de/bestaetigung.php"><input type="hidden" name="delimiter" value=": "><input type="hidden" name="subject" value="Spielergebnisse IGV-Pokal">

#!/usr/bin/perl

-------> SMTP-Programm zum Versenden der Mail:

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

-------> 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:

$delimiter = $query->param('delimiter');  # ---> Begrenzerzeichen zwischen name und value
$mailto = $query->param('mailto');        # ---> Empfängeradresse
$returnhtml = $query->param('return');    # ---> URL für Dankeseite
$subject = $query->param('subject');      # ---> E-Mail-Subject

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

$mailtext = "";
foreach(@names) {
  $name = $_;
  @values = "";
  @values = $query->param($name);
  if($name ne "mailto" && $name ne "return" && $name ne "subject" && $name ne "delimiter") {
    foreach $value (@values) {
      $mailtext = $mailtext.$name;
      $mailtext = $mailtext.$delimiter;
      $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: $subject\n\n";
print MAIL "$mailtext\n";
close(MAIL);

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

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

Vielen lieben Dank vorab,

  1. Hallo,

    Könnt Ihr mir mitteilen, was und wie ich evtl. am Script ändern muss,damit meine Formulare laufen? Ich benutze das Verzeichnis cgi-bin und folgendes Formular:

    Dazu müßtest Du uns schon sagen, was nicht geht. Wenn die Systemumgebung genau so aussieht, wie sie laut der Script-Konfiguration aussieht, dann sollte es nämlich wunderbar funktionieren.

    Hier noch einige Fragen aus dem Reich der Glaskugeln:

    Stimmen alle Pfade?
    Gibt es das Programm /usr/lib/sendmail?
    Ist Perl installiert?
    Ist ein Webserver installiert und korrekt konfiguriert?
    Was steht in dessen Log-Dateien?
    Liefert das Kraftwerk Strom?

    Grüße
      Klaus

    1. ja, alles da und ich hatte es auch schon mal drauf, aber das cgi-bin Verzeichnis irrtümlich gelöscht. Nun weiss ich nicht mehr wie ich das damals gemacht habe. Mein Provider kann auch nicht weiterhelfen.

      1. hi Daniel,

        Mein Provider kann auch nicht weiterhelfen.

        Doch, er kann. Er kann dir nämlich die log-Dateien zur Verfügung stellen (Klaus hatte danach gefragt). Dann sollte zumindest ein Ansatzpunkt zu finden sein.
        Noch zwei kleine Prüfmöglichkeiten, die du hast:
        -  in der shebang bitte mal den Schalter -w einfügen.
        -  oben im Script zusätzlich "use CGI::Carp 'fatalsToBrowser';" notieren.
        Damit solltest du eventuell Fehlermeldungen ziemlich genau in deinem Browser angezeigt bekommen, in der gleichen Form, in der sie auch im log stehen.

        Grüße aus Berlin

        Christoph S.