Hallo,
ich möchte ein Perl-skript schreiben, das abhängig von Benutzereingaben ein Frameset mit zwei Frames zurückliefert (1 Menü + 1 Hauptfenster). Dabei soll auch der Inhalt der beiden Frames dynamisch erzeugt werden ? Geht so was überhaupt ohne temporäre Dateien ?
Jedes Frame ist ein eigenständiger Request an den Webserver. Der Server weiß nicht, daß die Seiten in Frames landen. Für ihn ist es das gleiche, als ob die zwei Seiten von unterschiedlichen System aufgerufen werden. So weit zu Frames.
Deshalb ist es nicht möglich, die beinden frames mit einem Aufruf des Scripts zu befüllen, außer Du wählst den Umweg über Javascript, was ich persönlich aber nicht für sinnvoll halte.
Du kannst also nur drei verschiedene Script-Aufrufe durchführen. Einer für das erzeugen von Frames, einer für das Menü und einer für die Hauptseite.
Das können jetzt verschiedene Scripts sein, oder aber auch nur eines.
Mit einem Script kannst Du das z.B. bewerkstelligen, indem Du 'Modes' einführst:
<code>
#!/usr/bin/perl -w
use strict;
use CGI;
my($query) = new CGI;
my($mode) = $query->param('MODE');
$mode = 'FRAMES' unless $mode; # Frames werden angezeigt, wenn kein
# Mode angegeben wurde
if($mode eq "FRAMES")
{
&ShowFrames($query);
}
elsif($mode eq "MENU")
{
&ShowMenu($query);
}
elsif($mode eq "MAIN")
{
&ShowMain($query);
}
else
{
&ExitWithError("Invalid Mode");
}
</code>
Irgendwas in der Art funktioniert sicher, da hat jeder seine Vorlieben.
Grüße
Klaus