Sendmail CGI
ambras
- cgi
Hallo.
Ich muss dringend ein Kontaktformular wieder in Gang bekommen:
Der Server hat sendmail unter /usr/lib/sendmail
Das Kontaktformular hat folgende Inhalte:
<form name="Kontakt" action="http://www.grafex.de/cgi-bin/selfmail.pl" method="post">
<input type="hidden" name="mailto" value="cj@namexy.de">
<input type="hidden" name="return" value="http://www.namexy.de/content/000.html">
<input type="hidden" name="delimiter" value=":">
<input type="hidden" name="subject" value="Kontakt Formular Internet">
Habe Ordner cgi-bin eingerichtet mit der Datei selfmail.pl mit folgendem Inhalt:
#!/usr/bin/perl
$Sendmail_Prog = "/usr/lib/sendmail";
use CGI;
$query = new CGI;
@names = $query->param;
$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
$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";
}
}
}
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);
print "Location: $returnhtml\n\n";
SO. ABER DAS FUNKTIONIERT ALLES NICHT. UND EIGENTLICH HABE ICH SCHON FEIERABEND. HILFEHILFEHILFE
danke
ambras
Hallo,
SO. ABER DAS FUNKTIONIERT ALLES NICHT. UND EIGENTLICH HABE ICH SCHON FEIERABEND. HILFEHILFEHILFE
Zur Diagnose von Fehlern sind die zugehoerigen Fehlermeldungen im allgemeinen ganz hilfreich, ebenso wie Eintragungen in Logdateien, ...
Gruss
Thomas
Internal Server Error
The server encountered an internal error or misconfiguration and was unable to complete your request.
Please contact the server administrator, webmaster@www.grafex.de and inform them of the time the error occurred, and anything you might have done that may have caused the error.
More information about this error may be available in the server error log.
Apache/1.3.27 Server at www.grafex.de Port 80
UND
Method Not Allowed
The requested method POST is not allowed for the URL /cgi-bin/selfmail.pl.
Apache/1.3.27 Server at www.grafex.de Port 80
----------
Beim 1. ist das cgi unter dem bereits angelegtem Verzeichnis www.namexy.de/cgi/selfmail.pl
Beim 2. unter www.namexy.de/cgi-bin/selfmail.pl (Ordner von mir angelegt.
Internal Server Error
The server encountered an internal error or misconfiguration and was unable to complete your request.
Das kann alles sein.
fehlender CGI Header evtl. verursacht durch eine Ausgabe oder Warnung bevor du ihn im Skript sendest.
Ein Syntax Fehler (Das Programm in einer Konsole starten)
Ansonsten sind CGI Programme nicht so einfach zu debuggen, eine Möglichkeit ist noch use CGI::Carp qw/fatalsToBrowser/ einbinden.
Zumal das Skript Fallstricke birgt, da es nicht strict programmiert ist, d.h. du solltest use strict verwenden um z.b. Tippfehler oder unitialierte Werte zu vermeiden.
Struppi.
Logdateien? Was für Logdateien? Die einzigen die ich finden kann enden mit .gz. Und das kein Programm auf meinem Mac öffnen.
Hallo.
Die einzigen die ich finden kann enden mit .gz. Und das kein Programm auf meinem Mac öffnen.
Dann hast du entweder werkseitig installierte Software gelöscht oder dein System ist dringend reparaturbedürftig.
MfG, at
Hallo ambras,
Ich muss dringend ein Kontaktformular wieder in Gang bekommen:
<input type="hidden" name="mailto" value="cj@namexy.de">
$mailto = $query->param('mailto'); # ---> Empfängeradresse
Zuerst musst du das Script auswechseln oder diesen Design-Fehler
fixen.
Du öffnest hier Spammern Tür und Tor, ein solcher muss nur ein
eigenes Formular schreiben, in der dieses Feld vom Type Text ist
und schon kann er lustig SPAM über deinen Server verschicken.
Gruß
Alexander Brock