Klaus Mock: Perl-Datei wird nicht korrekt verarbeitet

Beitrag lesen

Hallo,

Diese Datei gibt es - und es ist eine HTML-Datei.

Es ist so, dass das Forum über die index.html aufgerufen wird. Man gibt seine Daten ein, drückt auf Absenden und über den Befehl "post" werden die Daten an die pl-Datei weitergeleitet.

Also so:
<form action="d:/apache/cgi-bin/test04/wwwboard.pl" method="POST">

Zumindest sollte es so funktionieren. Was bei mir passiert, ist ja weiter oben zu lesen.

Ist eventuell hier die Verzeichnisangabe oder sonstiges falsch?

Das bringt uns ja schon weiter.
Zwei Dinge:
1.)
Du solltest grundsätzlich HTML-Dateien von Scripts trennen.
Warum?
Weil bei HTML-Dateien deren _Inhalt_ an den Browser weitergeleitet werden und bei Scripts deren _Ergebnis_, also nicht das was in der scriptdatei steht, sondern das, was dieses Script produziert.
Asu sicherheitsgründen können daher Dateien im Scriptordern nicht direkt auf den Browser geschickt werden, weil es sonst vielleicht dazu kommt, daß dein code bei einem Browser auftaucht, und das willst Du sicher nicht.

Vorschlag:
Du speicherst dein Formular nicht im cgi-bin-Zweig, sondern im htdocs-ZWeig, oder wie auch immer Dein _normales_ Dokumenten-Root heißen mag.
also z.B:

Die (lokale) Datei:
d:\apache\htdocs\formular.html
ergibt
http://wasauchimmerfüreinServername/formular.html

und in der Trägst Du die richtige Form-Action ein. sie Punkt 2.

2.)
Du mußt grundsätzlich zwischen lokalen Dateinamen und URL's unterscheiden.

<form action="d:/apache/cgi-bin/test04/wwwboard.pl" method="POST">

kann nicht funktionieren, da dies kein gültiger URL ist.

<form action="/cgi-bin/test04/wwwboard.pl" method="POST">
oder
<form action="http://wasauchimmerfüreinServername/cgi-bin/test04/wwwboard.pl" method="POST">

funktioniert.

In der Serverkonfiguration legst Du fest, wie lokale VErzeichnisse vom Server behandelt werden sollen. Es gibt sicherlich irgendwo in der Konfigurationsdatei einen Eintrag für die Location /cgi-bin. Dort legst Du fest, welches lokale VErzeichnis im Web '/cgi-bin' heißen soll.

Schau Dir erstmal die Doku zum Server an.
BTW.: das machen eigentlich alle Webserver auf die eine oder andere Weise.

Also nochmals:

1.) Das HTML-Formular gehört _nicht_ in den cgi-bin-Pfad.
2.) Das Form-Tag sollte
  <form action="/cgi-bin/test04/wwwboard.pl" method="POST">
heißen.

Ich weiß, jetzt werden wieder ein paar große Fragezeichen auftauchen, aber leider ist aller Anfang schwer :-(

Grüße
  Klaus