welches Mailformular für einen VPower Server C ist empfehlenswert

  • Thread starter Thread starter dogsch
  • Start date Start date
D

dogsch

Guest
es handelt sich um einen Server mit Suse 9.3, Plesk 7.5, qmail.

ich hatte vorher nur einen Webspace bei einem anderen Provider und hatte HTML ein Formular was über cgi-bin/selfmail.pl lief.
Jetzt sagt er mir er würde das Dokument cgi-bin/selfmail.pl nicht finden, woran kann das liegen bzw. gibt es eine Empfehlung für ein besseres Mailformular?
 
Hallo dogsch,

er kann es nicht finden, weil es nicht da ist. Oder hast Du es nach Deinem Umzug zum vServer vom Webspace mitgenommen?

Ich kenne das selfmail.pl nicht, aber wenn es das hier ist, kann man das denke ich ganz gut benutzen.

Grüße
Sinepp
 
doch, doch, es ist da oder muß man den pfad mit /var/www/vhosts/... angeben, so war es jedenfalls bei so 'nem Captcha Script

jetzt ist es mit

<form action="http://www.meinedomain.de/cgi-bin/selfmail.pl" method="post">

eingebunden
 
Last edited by a moderator:
Wie sieht denn die genaue Fehlermeldung aus, wenn er es nicht findet?

Im Normalfall reicht die Einbindung wie Du sie vorgenommen hast aus.

Grüße
Sinepp
 
steht auf 755 (genauso wie der ganze cgi-bin Ordner) - sollte also stimmen

und andere Dokumente (z.B. ein testweise) reinkopiertes .PNG wird auch nicht gefunden
 
Last edited by a moderator:
Hallo!

In welchem Ordner aus Server / FTP Sicht befindet sich denn das Script?

Code:
/cgi-bin/
/httpdocs/cgi-bin/

Gruß flyingoffice
 
Hallo!

Und beim ersten (/cgi-bin) war im Domainsetup in Plesk auch CGI Support eingeschaltet? Beim zweiten war der mod_perl Support eingeschaltet?

Gruß flyingoffice
 
so, habe jetzt nochmals alles (cgi-Unterstützung und mod-perl) in Plesk eingeschaltet.

danach habe ich das Skript sowohl in "/cgi-bin/" als auch in "/httpdocs/cgi-bin/" kopiert.

beim Absenden des Formulars kommt jetzt

>Internal Server Error
>The server encountered an internal error or misconfiguration and was
>unable to complete your request.
>Please contact the server administrator to inform of the time the error
>occurred and of anything you might have done that may have caused the
>error.
>More information about this error may be available in the server error log.
>Web Server at motorcyclelifestyle.de

welches error log soll ich da bemühen - apache2/errog_log hat nix drinne
 
ok habe jetz in /var/vhosts/meinedomain.de/statistics/logs/error_log folgendes
gefunden:

Code:
[Tue Apr 17 10:01:39 2007] [error] [client xx.xx.xx.xx] Premature end of script headers: selfmail.pl, referer: http://www.meinedomain.de/feedback.html
[Tue Apr 17 10:13:41 2007] [error] [client xx.xx.xx.xx] Premature end of script headers: selfmail.pl, referer: http://www.meinedomain.de/testform.html

und das sieht ja wohl aus als wenn das 'was mit dem Perlskript im argen liegt, oder?!
 
ich denke 'mal es liegt an dieser Zeile

Code:
# -------> SMTP-Programm zum Versenden der Mail:
$Sendmail_Prog = "/usr/lib/sendmail";

was muß man da eintragen

/var/qmail/bin/qmail-send
oder
/var/qmail/bin/qmail-smtpd
oder gar 'was ganz anderes?
 
Hallo!

Was läßt Dich vermuten, daß es die besagte Zeile ist. Bei Deinen Vorgaben (Suse / Plesk) sollte die besagte Datei existieren und ein Link auf /var/qmail/bin/sendmail sein.

Gruß flyingoffice
 
Hallo!

Ich bin nun wirklich kein Perl Experte. Aber wenn ich die Fehlermeldung aus dem Log und den von mir geposteten Link berücksichtige, würde ich mal das Ende des Scripts wie folgt editieren und schauen ob es was bringt:

Code:
{
 local ($oldbar) = $|;
 $cfh = select (STDOUT);
 $| = 1;
 # -------> Dankeseite an Browser senden:
 print "Location: $returnhtml\n\n";
 #
 $| = $oldbar;
 select ($cfh);
}

Gruß flyingoffice

PS: das war mal so ins blaue geraten :)
 
Last edited by a moderator:
nee, war es auch nicht - mal sehen, werde 'mal schauen ob ich das mit 'nem PHP Skript ewrledigen kann.

Danke jedenfalls für die Hilfe
 
....

Code:
# -------> SMTP-Programm zum Versenden der Mail:
$Sendmail_Prog = "/usr/lib/sendmail";

...

Die Fehlermeldung "Premature End of Scrip Headers" kommt in den allermeisten Fällen, wenn die sogenannte Shebang Zeile nicht richtig ist. Das ist die erste Zeile in einem Script, da wird der Pfad und das Binary des Interpreters angeben.

Die Fehlermeldung hat noch nichts mit Pfaden/Variablen innerhalb des Perlskriptes zu tun.

Beispiel (für Perl):
#!/usr/bin/perl

Du müsstest also mal prüfen, ob die erste Zeile in dem Perlskript, wirklich den richtigen Pfad zu Perl enthält.

Wo liegt das Perlkommando?

which perl

Gibt zum Beispiel zurück:

/usr/bin/perl

Das muß dann auch in die SheBang Zeile.

Wenn die Zeile richtig ist und der Fehler nicht behoben ist, dann mal den Parameter -w im Perl Skript hinzufügen, wenn noch nicht gemacht:

#!<pfad zu perl binary> -w

Danach das Skript nochmal ausführen und deine error_log des Webservers prüfen. Mit dem Schalter -w wird jedes warning des Perl Interpreters auch in das Apache Log geschrieben.

Als weitere Fehlerquelle für dies Meldung kommt das nicht Ausgeben eines Content types in Frage. Der Content-type muß vor allen anderen Ausgaben an den WebServer gesendet werden.

Das aber nur, wenn nicht das CGI Modul zur Header Ausgabe verwendet wird:

print "Content-type:text/html\n\n";

:)
 
Back
Top