Jörk Behrends: 2 Probleme - eine Lösung?

Beitrag lesen

Hi Andreas,

Hallo,
ich möchte mit Perl automatisch HTML-Seiten erstellen, die eine andere Seite in einem 100%,* Frame anzeigt. Dabei habe ich 2 Probleme:

  1. Wie kann ich unter dem CGI-Verzeichnis ein neues Verzeichnis erstellen?

Ich vermute jetzt einfach mal, daß Du in dieses Verzeichnis HTML-Dateien ablegen möchtest. In der Regel wird dieses nicht von (vernünftigen) Servern unterstützt. Hat man dem Server beigebracht, daß z.B. das Verzeichnis /cgi-bin/ Scripte enthält, so wird alles was dort enthalten ist als Programm interpretiert.
Sollte dein Script (/cgi-bin/frame) also ein Frameset erzeugen, welches dann die Seite inhalt/index.html referenziert, wird das nicht so ganz funktionieren. Die index.html muß in einem Bereich liegen, welcher html-Dokumente enthält (htdocs). Damit der Zugriff aus dem Frameset heraus auch funktioniert, muß dann der Pfad entweder absolut angegeben sein, oder Du gibst eine BASE Tag mit aus, auf das sich dann (statt /cgi-bin/) die relative Pfadangabe bezieht.

  1. Wie kann ich verhindern, daß bei der Zieladresse HTML-Code eingegeben wird? Unter UNIX ist so ziemlich jedes Zeichen erlaubt für Dateien und Verzeichnisse und ich kann nicht einfach nach bestimmten Zeichen in der URL suchen. Auch zu überprüfen ob die URL existiert würde nicht viel nützen, denn da kann ja jemand z.B. http://www.teamone.de/selaktuell/">IrgendWelcherCode eingeben, und diese Seite würde ja existieren, zumindest für Perl.

Wenn Du zur Zeit mit dem Gedanken spielst, den Frameset Inhalt durch einen CGI-Parameter zu übergeben, ist bestimmt "path-info" für Dich DIE Variante. Mal angenommen, Dein Script heiß frame (mal ganz bewußt ohne Endung - geht aber natürlich auch mit). Wenn Du dann aus dem Browser /cgi-bin/frame/inhalt/index.html sehen möchtest, wird auf dem Server frame gestartet. Das Script kann die Umgebungsvariable PATH_INFO abfragen, welche in diesem Falle /inhalt/index.html beinhaltet. Das Script könnte nun als Antwort das Frameset ausgeben:

<html>
...
    <frame src="/mywebspace/framepages/inhalt/index.html">
...
</html>

Viel Spaß erstmal damit,
   Jörk